1.异常的分类
- 编译期异常
- 都是Exception类及其子类
- 必须显示处理,否则程序就会发生错误,无法通过编译
- 运行时异常
- 都是RuntimeException类及其子类
- 无需显示处理,也可以和编译时异常一样处理
编译期异常例子:
运行时异常例子:
运行结果:
上述运行时异常由于0无法作为被除数,运行时打印出算数异常信息。
2.自定义异常
1.首先新建一个类,继承Java中的RuntimeException,其次建立有参和无参的方法。
public static class MyException extends RuntimeException{
public MyException(){
}
public MyException(String msg){
super(msg);
}
}
2.测试
public static void test1(){
int a=2;
if (a>1){
try {
throw new MyException("异常了!!!");
} catch (MyException e) {
System.out.println(e.getMessage());
}
}
}
3.常见的异常:
- 算术异常:ArithmeticExecption
- 空指针异常:NullPointerException
- 类转换异常:ClassCastException
- 数组负下标异常:NegativeArrayException
- 数组下标越界异常:IndexOutOfBoundsException
- 违背安全原则异常:SecturityException
- 访问权限异常:IllegalAccessException
- 文件已结束异常:EOFException
- 文件未找到异常:FileNotFoundException
- 字符串转换为数字异常:NumberFormatException
- 操作数据库异常:SQLException
- 输入输出异常:IOException
- 方法未找到异常:NoSuchMethodException