一尘不染

为什么在.NET中不检查异常?

java

我知道Google搜索可以找到合适的答案,但是我更喜欢听您的个人(也许是技术性的)意见。
Java和C#之间在引发异常方面有所不同的主要原因是什么?
在Java中,引发异常的方法的签名必须使用“ throws”关键字,而在C#中,您不知道在编译时是否可以引发异常。


阅读 243

收藏
2020-09-08

共1个答案

一尘不染

因为对已检查异常的响应几乎总是:

try {
  // exception throwing code
} catch(Exception e) {
   // either
   log.error("Error fooing bar",e);
   // OR
   throw new RuntimeException(e);
}

如果您确实知道如果抛出特定异常,您可以执行某些操作,那么您可以捕获该异常,然后对其进行处理,但是否则,这仅仅是使编译器安逸的咒语。

2020-09-08