C#控制台不会打印异常消息。

8 浏览
0 Comments

C#控制台不会打印异常消息。

我有一个ASP.NET项目,在其中的某个部分我调用了一个业务规则来测试表单:

[HttpPost]
    public ActionResult InsertProduct(Product Product)
    {
        try
        {
            InsertProductBLL ProductInsertion = new InsertProductBLL (Product.Value, Product.Description);
            ProductInsertion.IsValid();
            return PartialView("Success");
        }
        catch (Exception e)
        {
            Console.Write(e.Message);
            return PartialView("Fail");
        }
    }

在BLL中,我有这样的代码:

public void IsValid()
{
    if (Value> 10) ; //我只想要else部分
    else
    {
            Exception e = new Exception("插入一个更大的值");
            throw e;
    }
}

然而,控制台只打印出异常已被抛出的信息,而没有我要求的消息。这里有什么语法错误或者是我弄错了什么吗?

0
0 Comments

问题出现的原因是C#控制台不打印异常消息。这可能是因为在捕获异常时,没有将异常消息打印到控制台上。解决方法是在捕获异常的代码块中,使用Console.Write方法将异常消息打印到控制台上。以下是解决方法的具体步骤:

1. 首先,在IsValid方法中创建一个Result对象,用于传输数据。Result对象包含三个属性:HasResult,ErrorMessage和SuccessMessage。

2. 在IsValid方法中,根据业务规则判断Value的值是否大于10,并将结果赋给Result对象的HasResult属性。如果HasResult为真,则将"Success"赋给Result对象的SuccessMessage属性;如果HasResult为假,则将"Insert a bigger value"赋给Result对象的ErrorMessage属性。

3. 在Controller中的InsertProduct方法中,实例化InsertProductBLL类,并调用其IsValid方法,将返回的Result对象赋给result变量。

4. 判断result对象的HasResult属性,如果为真,则将SuccessMessage赋给returnMessage变量;如果为假,则将ErrorMessage赋给returnMessage变量。

5. 在捕获异常的代码块中,使用Console.Write方法将异常消息打印到控制台上,并将"Fail"赋给returnMessage变量。

6. 最后,将returnMessage作为PartialView的参数,返回给前端页面。

通过以上步骤,可以解决C#控制台不打印异常消息的问题。

0