异常:
java.lang包
Throwable ->所有异常的父类
|- Error(错误)
|- 栈溢出: StackOverflowError
原因:内存泄漏,短时间创建了大量的无用对象
|- Exception(异常)
|- 运行时异常
|- NullPointerException - 空指针异常
|- IndexOutOfBoundException - 下标越界异常
|- ClassCastException - 类型转换异常
|- NumberFormatException - 数值转换异常
|- IllegalArgumentException - 非法的参数
|- UnsupportedOpertionException - 不支持的操作
|- 已检查异常(非运行时异常/编译时异常)
|- parseException - 格式化异常
|- IOException - IO异常
|- FileNotFoundException - 文件未找到
|- ClassNotFoundException - 类未找到
|- UnsupportedEncodingException - 不支持的字符集异常
解决异常的方式:
1.try-catch:捕抓异常【自己能解决的异常】
注意事项:
a.可能出现异常的代码,必须写在try中
b.要捕获的异常类型,必须符合可能出现异常类型
c.try代码块中的代码出现异常,能被捕获,程序不会终止
d.一个try后面可以跟多个catch捕抓的不同的异常
多个catch一定是父类型异常放在子类型异常的后面.
如果是多个没有关系的异常之间没有顺序
e.catch中定义的是父类型异常,那么可以将父类中所有的子类型一起捕获
f.try-catch可以嵌套使用,但是没有必须
g.try 后面 必须至少要有一个catch,可以有一个finally,如果有,就一定会执行finally中内容
h.finally的作用: 用来做扫尾工作,比如说用来释放资源
自定义异常类:
输入学生成绩,成绩不能为0
2.throws:抛出异常【向上抛出异常】