- NullPointerException===============>空指针异常
- ClassCastException================>类型强制转换异常
- IndexOutOfBoundsException=========>索引越界异常
- SQLException====================>操作数据库异常
- IOException======================>输入输出异常
- NoSuchMethodException============>方法未找到异常
- ClassNotFoundException============>类找不到异常
- java.lang.IllegalAccessError==========>违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常。
- java.lang.ExceptionInInitializerError====>初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。
PS: 异常还有很多,以上只是列举了一些常见的异常,更加详细的异常种类介绍请参考 这里
二、异常的处理异常处理的方式无外乎两种:
- try/catch发现异常,立即处理
- throw 往上抛出,交给调用者处理
1、捕获异常示例:
public class ExcepTest{
public static void main(String args[]){
int a[] = new int[2];
try{
System.out.println("Access element three :" + a[3]);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Exception thrown :" + e);
}finally{
a[0] = 6;
System.out.println("First element value: " +a[0]);
System.out.println("The finally statement is executed");
}
}
}
2、抛出示例:
public class className{
public void withdraw() throws RemoteException,InsufficientFundsException{
// Method implementation
}
}
三、自定义异常
public class RequiredFieldIsNullException extends RuntimeException{
//使用父类的无参构造
public RequiredFieldIsNullException(){
super();
}
//使用父类的String传参构造
public RequiredFieldIsNullException(String msg){
super(msg);
}
}
四、全局异常处理
@RestControllerAdvicehttps 注解详情
@RestControllerAdvicehttps
public class GlobalExceptionAdvice {
//捕获异常并对异常进行响应的处理
@ExceptionHandler(RequiredFieldIsNullException.class)
public Result


