异常
Throwable
Error:错误 无法恢复的
Exception:异常 处理之后能正常运行的
确定会发生异常的情况:
chectedException 提前处理
不确定:
RuntimeException,运行期异常 遇到了再解决
异常处理的五个关键字
捕获异常
try
catch
finally
声明异常
throws
抛出异常
throw
try{
有可能发生问题的代码块;
}catch(有可能发生的异常类型 e){
对异常的查看等操作
}finally{
必定会运行的代码
}
throw和throws
throw:抛出,手动产生异常 必须在条件语句内
throws:声明该方法未处理的异常 必须跟在方法参数列表后面
最常用 RuntimeException:不一定要处理
Exception:一定要处理
常见的异常类型:
算数异常:ArithmeticExceptio
空指针异常:NullPointerException
数组越界异常:ArrayIndexOutOfBoundsException
索引越界异常:IndexOutOfBoundException
类型转换异常:ClassCastException
输入类型类型不匹配:InputMismatchException
输入输出异常:IOException
SQL异常:SQLException
非法参数异常:IllegalArgumentException
数字格式转化异常:NumberFormatException
checked异常,必须被处理:
未找到类的异常ClassNotFoundException
打印出错信息 e.printStackTrace();
catch 唯一不执行的情况 使用System.exit(1)中断程序,退出Java虚拟机
finally 块 //关闭、释放资源 必须被执行
多重catch
捕获异常的顺序无影响
throws通知调用者
自定义异常类的过程:
继承某个已知的异常类
有参构造super(message)调用父类有参构造
public class WrongAgeException extends RuntimeException{
public WrongAgeException(String message){
super(message);
}
}