异常过滤器的好坏(CLR)
为什么有些语言支持它们而另一些不支持呢?把它们加到我的新语言里是个好主意吗?我应该什么时候使用过滤器和catch/rethrow?就像很多事情一样,异常过滤器有好的一面也有坏的一面…
什么是异常过滤器?
CLR提供了许多高级语言可以构建的异常处理原语。有些是相当明显的,并且很容易映射到我们大多数人都知道和喜欢的语言结构:例如try/catch和try/finally。我敢猜测每个人都知道他们在做什么,但为了以防万一,让我们考虑一下C#:
try{try{
Console.Write(“1”);if (P) throw newArgumentException();
}finally{
Console.Write(“2”);
}
}catch(ArgumentException e)
{
Console.Write(“3”);
}
Console.Write(“4”);
- 上一篇: 仅通过转储来排除内存泄漏
- 下一篇: 使用Java中的InputStream读取文件数据