编译时异常(受控异常,受检异常)【发生概率大】
运行时异常(非受控异常,未受检异常)【发生概率小】
当除数为0时,编译不会报错,如果没有try/catch,程序直接崩溃。用try/catch的话,则可以让程序运行下去,并且输出为什么出错!
try {
//可能出现异常的代码
}
catch (异常类型1 变量名1) {
//处理异常的方式1
}
catch (异常类型2 变量名2) {
//处理异常的方式2
}
catch (异常类型3 变量名3) {
//处理异常的方式3
}
...
finally {
//一定会执行的代码
}
getMessage() ---->拿出构造方法中传入的参数提示信息
printStackTrace() ---->打印详细信息
如果try{......}中代码均未发生异常,
那么catch{......}中不执行;
finally{......}中一定执行。
try-finally一起出现.
public class Exceptions {
public static void main(String[] args) {
System.out.println("hello");
String str = null;
for (int i = 0; i < 10000; i++){
System.out.println(i);
}
str.toString();
}
}
class MyException extends Exception{
public MyException() {
}
public MyException(String str){
}
}