C#控制台不会打印异常消息。
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; } }
然而,控制台只打印出异常已被抛出的信息,而没有我要求的消息。这里有什么语法错误或者是我弄错了什么吗?
问题出现的原因是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#控制台不打印异常消息的问题。