1.捕获异常:当知道如何处理异常的时候使用try/catch
try{
可能会出现异常的代码
}catch(异常类型 异常对象){
异常处理方式
}
try块中放的是可能会出现异常的代码,catch块是处理异常的代码,当try块中的代码出现异常,try块则结束,但不印象后续程序执行
2. 声明异常类型,关键字:throws
当程序出现异常,会中止当前方法。不知道该如何处理当前异常的时候用,需要统一处理的 时候
public class Demo02 {
public static void main(String[] args) {
System.out.println("1");
method01();
System.out.println("2");
try{
method02();
}catch (NullPointerException e){
e.printStackTrace();
}
System.out.println("3");
}
//ctrl+alt+m
//使用 try catch
private static void method01() {
try{
String str = null;
System.out.println(str.equals(""));
System.out.println("try即将结束");
}catch (NullPointerException e){
//打印异常信息
e.printStackTrace();
}
System.out.println("程序即将结束");
}
//抛出异常
private static void method02() throws NullPointerException{
String str = null;
System.out.println(str.equals(""));
System.out.println("程序即将结束");
}
}
自定义异常:统一处理异常,抛出异常对象(throw),会使程序中止
public class Demo01 {
public static void main(String[] args) {
try{
String str = null;
System.out.println(str.equals(""));
System.out.println("try即将结束");
}catch (NullPointerException e){
//抛出异常对象
throw new MyException("Demo04 第13行的 str 可能出现 null ");
}
System.out.println("程序即将结束");
}
}
public class MyException extends RuntimeException {
public MyException(String str){
//调用父类的有参构造方法
super(str);
}
}