标签:调用 void mod 异常 函数 项目 编译器 规模 代码
void foo(string filename) throws FileNotFoundException {
if (...) {
throw new FileNotFoundException();
}
}
try {
foo("blah");
} catch (FileNotFoundException e) {
...
}
这种对异常的声明和检查,叫做“checked exception”。
相比之下,Java 要求你对异常进行 throws 显式声明,实质上把这个全局分析问题分解成了一个个模块化(modular)的小问题。每个函数作者完成其中的一部分,调用它的人完成另外一部分。大家合力帮助编译器,高效的完成静态检查,防止漏掉异常处理,避免不必要的 try-catch。实际上,像 Exceptional 一类的 C# 静态检查工具,会要求你在注释里写出可能抛出的异常,这样它才能发现被忽略的异常。所以 Exceptional 其实重新发明了 Java 的 CE,只不过 throws 声明被写成了一个注释而已。
标签:调用 void mod 异常 函数 项目 编译器 规模 代码
原文地址:https://www.cnblogs.com/JaxYoun/p/12335203.html