关于自定义捕获异常的问题

gudamzero 2018-10-16 08:20:58
有没有办法自定义一个异常类,然后try catch的异常捕获到的异常自动调用这个类呢?比如:
try
{
int i = 1;
int j = 0;
int result = i / j;
}
catch (MyException ex)
{

throw;
}
return View();

发生错误的时候自动走到catch里面
...全文
278 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
eaqpi 2018-10-16
  • 打赏
  • 举报
回复
你改了ex,他就catch不到了啊。

继承 system.exception 类,然后重写你需要的部分,这样应该行吧。
正怒月神 版主 2018-10-16
  • 打赏
  • 举报
回复
过滤器,下面这个是webapi的例子。 https://blog.csdn.net/hanjun0612/article/details/50913485 比较简单粗暴的是,直接在global的Application_Error 处理 void Application_Error(object sender, EventArgs e) { //捕获页面传递来的异常 Exception ex = Server.GetLastError().GetBaseException(); //跳转到 错误页面 Response.Redirect("~/Controller/Action"); }
gudamzero 2018-10-16
  • 打赏
  • 举报
回复
引用 1 楼 eaqpi 的回复:
本来就会走到cantch里面a,

如果要做处理代码,就写代码在cantch里,或调用。

throw 是丢给了调用者处理,以防止到处乱弹出错信息,自己好找。。。


额,我知道正常会走到catch里面,但是如果我是自定义了MyException ,并且像上面那样用了catch (MyException ex),就不会走到catch里面了,只有catch (Exception ex)才会走到catch里面。当然不重写Exception,在catch里面处理也是可以。我就是问问能不能重写Exception
eaqpi 2018-10-16
  • 打赏
  • 举报
回复
本来就会走到cantch里面a,

如果要做处理代码,就写代码在cantch里,或调用。

throw 是丢给了调用者处理,以防止到处乱弹出错信息,自己好找。。。
  • 打赏
  • 举报
回复
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
string str;
var strDateInfo = "出现应用程序未处理的异常\r\n";
var error = e.Exception;
if (error != null)
{
str = string.Format(strDateInfo + "异常类型:{0}\r\n异常消息:{1}\r\n异常信息:{2}\r\n",
error.GetType().Name, error.Message, error.StackTrace);
}
else
{
str = string.Format("应用程序线程错误:{0}", e);
}
LogService.Error("系统错误", error.Source, str);
MessageBox.Show(error.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
//Environment.Exit(0);
}
  • 打赏
  • 举报
回复
我是winform在 program里面注册异常事件一般都执行第一个
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
//处理UI线程异常
Application.ThreadException += Application_ThreadException;
//处理非UI线程异常
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
csdnFUCKINGSUCKS 2018-10-16
  • 打赏
  • 举报
回复
使用异常(C# 编程指南) 捕获自定义异常需要你手动抛出你定义的异常,然后在catch里捕获你定义的异常。只写Exception的话是只能捕获到程序集自带的异常,并不是你继承了异常类程序就能认出来的。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧