异常(Exception)
异常指程序运行中出现的不期而至的各种状况:找不到文件、网络连接失败、非法参数等等
异常发生在程序运行期间,它影响了正常的程序执行流程
Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类
异常分为两大类:错误Error和异常Exception,前者是灾难性的致命错误,程序无法控制处理,后者可以被程序处理
常见异常RuntimeException(运行时异常)
ArrayIndexOutofBoundsException(数组下标越界异常)
NullPointException(空指针异常)
ArithmeticException(算术异常)
MissingResourceException(丢失资源)
ClassNotFoundException(找不到类),这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理
异常处理的五个关键字:try、catch、finally、throw、throws,有的异常在运行时会直接显示,有的则需throw或throws抛出,前者用在方法中,后者用于方法标题
//例子
//方法
public void test(int a,int b)throws ArithmeticException{
if(b==0){
throw new ArithmeticException();
}
}
快捷键Ctrl+Alt+T(选中对应语句,自动放入try语句中)
例子:
package com.scanner.test;
public class Excepitonstest {
public static void main(String[] args) {
int a = 1;
int b = 0;
try {//监控区域,哪一段有异常放进来
System.out.println(a/b);//捕获异常后括号内的语句就不执行了
}catch (ArithmeticException e){//catch捕获异常后执行括号内语句,catch(想要捕获的异常类型)
System.out.println("捕获异常");
}finally {//无论如何都执行finally语句的内容
System.out.println("完成");
}
//捕获多个异常需要从小到大去捕获
}
}
合理使用try和catch不至于程序一下子卡死,或用于处理潜在异常
尽量处理异常,而不是打印输出
尽量添加finally语句块去释放占用的资源
自定义异常:继承Exception类即可