我知道Google搜索可以找到合适的答案,但是我更喜欢听您的个人(也许是技术性的)意见。 Java和C#之间在引发异常方面有所不同的主要原因是什么? 在Java中,引发异常的方法的签名必须使用“ throws”关键字,而在C#中,您不知道在编译时是否可以引发异常。
因为对已检查异常的响应几乎总是:
try { // exception throwing code } catch(Exception e) { // either log.error("Error fooing bar",e); // OR throw new RuntimeException(e); }
如果您确实知道如果抛出特定异常,您可以执行某些操作,那么您可以捕获该异常,然后对其进行处理,但是否则,这仅仅是使编译器安逸的咒语。