Java异常处理分为checked异常和Runtime(运行时)异常。
Checked异常:只有Java语言提供了Checked异常,java认为Checked异常都是可以被处理的,所以必须显示处理;checked异常是在程序编译过程中就能被发现的异常,需要在程序中强制处理,如文件输入输出等,必须用try...catch...finally来捕获异常或throws抛出异常;
Runtime异常:Runtime(运行时)异常提前不易预知,往往可以通过编译,只有程序运行时才会抛出异常,也可用tryCatchFinally来处理,如数组越界等。
注:finally中的程序块始终会运行,即使try中已经return处理。但有一种情况finally中程序不会再运行:try中遇到System.exit(0),该语句将停止当前线程,而finally并不能使已经死亡的线程复活。