我正在使用asp.net mvc 5。
我用过:
try
{
// some code of any type
}
catch (Exception e)
{
ViewBag.error = e.Message;
}
我没有使用throw关键字,只有我想在视图中显示错误。
我的语法正确吗?
谢谢。
答案 0 :(得分:0)
通常,您不应该像这样捕获任何类型的exception
。这可能导致您的程序进入未定义状态。您应该使其更具体,例如仅捕获SocketExceptions
。是的,如果出现未处理的异常,这可能会导致您的程序崩溃,但是必须重新启动应用程序的用户可能比导致系统损坏的应用程序更糟糕,因为该应用程序无法正常运行。
假设您有一个生成字符串的函数,该字符串是目录的路径。您得到一个解析异常,现在您的程序将删除...什么?你不能肯定地说。但是,如果您在catch
中专门处理了解析异常,则可以确保您对情况做出了正确的反应
try
{
//some some SocketStuff
}
catch (SocketException e)
{
//cancel network operation
}
catch (ParseException e)
{
//use default string
}
仅当您知道其中的代码根本不会造成任何损坏时,才应使用捕获任何类型的Exception
的方法,例如,与GUI相关的代码将不会导致严重的问题。从长远来看。
答案 1 :(得分:0)
是的,您可以将其用于异常处理。
此外,您可以定义不同类型的异常以动态处理异常
以下是我们如何在CSHTML中访问它的代码。
@if (ViewBag.Error != null)
{
<h3 style="color:red">@ViewBag.Error</h3>
}
答案 2 :(得分:0)
是的!此语法正确。您可以使用以下代码在页面中显示错误。
@if (ViewBag.Error != null)
{
<h4 style="color:#e74c3c">@ViewBag.Error</h4>
}