Java SE(七)异常
Throwable
前言
提示:所有的异常和错误都是可抛出的
提示:以下是本篇文章正文内容,下面案例可供参考
一、Exception
1.认识Exception
在Java中,异常以类的形式存在,抛异常创建的异常对象
2.Exception直接子类(编译时异常)
编译时异常必须在编译(编写)阶段预先处理,如果不处理,编译器会报错所有异常只有在运行阶段才会发生,因为运行阶段才可以new对象
预处理方式:
1.throws 抛给上一级
2.try-catch-finally
特殊题:
public static void main(String[] args) throws Exception{
System.out.println(m()); // 100
}
public static int m(){
int i = 100;
try{
return i;
}finally {
i ++;
}
}
m方法反编译效果:
public static int m(){
int i = 100;
int j = 1;
i ++;
return j
}
自定义异常: 1.继承Exception或RuntimeException 2.写一个无参构造与一个有参构造
重写的方法不能比重写之前的方法抛出更多异常
public class Test{
public static void main(String[] args) throws Exception{
MyException myException = new MyException("用户名不能为空");
System.out.println(myException.getMessage());
}
}
class MyException extends Exception{
public MyException(){};
public MyException(String str){super(str);};
}
3.RuntimeException(运行时异常)
常见:
1.NullPointerException
2.ClassCastException
3.NumberFormatException
二、Error
Error一般不可处理,虚拟机直接退出