一、try-catch-finally
格式:
try{
可能出现异常的代码
}catch(异常类型1 引用){
//异常类型1的处理代码
}catch(异常类型2 引用){
//异常类型2的处理代码
} ······ {
//可以多个catch
}finally{
//必须执行
}
public static void main(String[] args) {
//1、如果try语句块中的内容真的出现了异常,程序将执行catch语句块的内容
//2、如果try语句块中没有出现异常,程序将不会执行catch语句块的内容,继续往下执行
//3、如果异常处理语句中出现finally语句块,无论是否出现异常finally语句一定会执行
//4、一个try可以搭配多个catch用来捕获不同异常
String[] strArr = {"吉林","长春","四平"};
try {
System.out.println(strArr[3]); //如果出现异常下面语句不执行
} catch (Exception e) {
e.printStackTrace(); //打印出捕获到的异常的详细信息
System.out.println(strArr[2]);
} finally{
System.out.println("我必须执行!");
}
System.out.println("哈哈哈,大傻瓜");
}
public static void main(String[] args) {
//try-catch-finally:异常捕获(又叫异常处理)
//1、如果try语句块中的内容真的出现了异常,程序将执行catch语句块的内容
//2、如果try语句块中没有出现异常,程序将不会执行catch语句块的内容,继续往下执行
//3、如果异常处理语句中出现finally语句块,无论是否出现异常finally语句一定会执行
//4、一个try可以搭配多个catch用来捕获不同异常
Student stu = null;
String[] strArr = {"吉林","长春","四平"};
try {
System.out.println(stu.getName()); //空指针异常
System.out.println(strArr[3]); //数组下标越界
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(strArr[2]);
} catch (NullPointerException e) {
e.printStackTrace(); //打印出捕获到的异常的详细信息
stu = new Student();
stu.setName("张三");
System.out.println(stu.getName());
}finally{
System.out.println("我是finally,必须执行");
}
System.out.println("哈哈哈,大傻瓜");
}
二、Error
Error类主要用于表示程序中致命错误,例如内存不足等严重错误,一般与硬件相关。不需要对这种错误进行处理。
三、throw关键字
异常的抛出throw,可分为两大类
1、由系统自动抛出
2、通过throw关键字将异常对象显示抛出