请帮我理解下面的代码,
情况1:
finally{
return;
System.exit(1);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码抛出编译时错误:
无法访问的代码
案例2:
finally{
System.exit(1);
return;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码不会抛出任何编译/运行时错误,但是当我运行程序时只退出.
我的问题在于为什么设计人员想在案例1中抛出编译时错误,而在案例2中他们没有.实际上,当您调用System.exit(0)时,程序将终止,这意味着它下面的代码无法访问.
return是编译器知道的语言功能.System.exit(1)被编译器视为静态方法调用,类似于System.out.println(...).编译器不知道调用此方法实际上做了什么.