首页 新闻 会员 周边 捐助

请教一个MVC中的异常过滤器的问题

0
悬赏园豆:10 [已解决问题] 解决于 2017-09-15 12:23

在MVC中 如果代码异常。会被(项目中重写异常过滤器或实现异常过滤器)异常过滤器捕获。

但如果。当代码中用了try catch 代码被try cathc捕获了。那么就不会被过滤器捕获。

我的疑问是。

1:我看项目中。为什么用了异常过滤器的同时。还要在代码中加try cath捕获,这有什么好处吗?

2:如果我想在过滤器异常中都捕获总个项目中的异常。那么我只能把try cath去掉吗?

糯米粥的主页 糯米粥 | 初学一级 | 园豆:22
提问于:2017-09-15 09:25
< >
分享
最佳答案
1

1:我看项目中。为什么用了异常过滤器的同时。还要在代码中加try cath捕获,这有什么好处吗?

    异常过滤器 自动捕获所有未被捕获的异常,它是笼统的;自己的代码中trycatch可以捕获具体类型的异常,你可以在自己捕获异常后又自己抛出新的异常。

2:如果我想在过滤器异常中都捕获总个项目中的异常。那么我只能把try cath去掉吗?

    没必要去掉啊,两种机制有各自的用途。

 

 

一般会先自定义异常类型。

然后在代码中捕获异常后抛出自定义的异常,最后由异常过滤器处理你抛出的自定义异常(如:记录错误日志)

收获园豆:5
西漠以西 | 小虾三级 |园豆:1675 | 2017-09-15 10:23

多谢解答。谢谢!

糯米粥 | 园豆:22 (初学一级) | 2017-09-15 12:22
其他回答(2)
1

1.全局异常处理.处理的是未被处理的异常.你既然处理了.自然就轮不到全局异常处理

2.不知道你在想什么.你既然在各个地方都try了.还要全局异常处理干嘛?

收获园豆:2
吴瑞祥 | 园豆:29449 (高人七级) | 2017-09-15 09:59

多谢解答。谢谢!

支持(0) 反对(0) 糯米粥 | 园豆:22 (初学一级) | 2017-09-15 12:22
1

try catch类似于局部变量,只对某一块代码进行异常捕获,这种好处就是你可以明确的知道错误来自哪里,甚至是这一段代码异常了,程序并不会受多大,都还可以继续执行。

过滤器类似于全局变量,只要程序一出错,就基本整个程序不能运行。

 

想捕获异常,可以在每一个catch里写日志。

收获园豆:3
龙行天涯 | 园豆:1794 (小虾三级) | 2017-09-15 10:08

多谢解答。谢谢!

支持(0) 反对(0) 糯米粥 | 园豆:22 (初学一级) | 2017-09-15 12:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册