Aar*_*ron 47 .net c# error-handling exception
使用C#,是否有更好的方法来处理多种类型的异常,而不是一堆丑陋的catch块?
什么是这种情况的最佳做法?
例如:
try
{
// Many types of exceptions can be thrown
}
catch (CustomException ce)
{
...
}
catch (AnotherCustomException ace)
{
...
}
catch (Exception ex)
{
...
}
Run Code Online (Sandbox Code Playgroud)
Ree*_*sey 71
在我看来,一堆"丑陋"的捕获块是处理这种情况的最佳方式.
我更喜欢这个的原因是它非常明确.您明确说明了要处理的异常以及应如何处理这些异常.在大多数情况下,尝试将处理合并为更简洁形式的其他形式会失去可读性.
我的建议是坚持这一点,并处理你希望明确处理的异常,每个异常都在他们自己的catch块中.
DOK*_*DOK 21
我同意里德:这是最好的方法.
我会添加这些评论:
只抓住你要做的事情.如果您无法解决问题,那么捕获特定异常就没有意义了.
不要过度使用catch块.在许多无法解决异常的情况下,最好让异常气泡到达中心点(例如Page_Error)并在那里捕获它.然后,您记录该异常并向用户显示一条消息.
Mar*_*ett 15
关于您可以做的唯一其他事情是模拟VB.NET的异常过滤器:
try {
DoSomething();
} catch (Exception e) {
if (!ex is CustomException && !ex is AnotherCustomException) {
throw;
}
// handle
}
Run Code Online (Sandbox Code Playgroud)
有时这更好,有时不是.如果在处理程序中有一些我想要的通用逻辑,我主要使用它,但异常不共享基类型.
| 归档时间: |
|
| 查看次数: |
43462 次 |
| 最近记录: |