day06-异常处理
2023-02-15 09:38:07 4 举报
AI智能生成
异常大纲
作者其他创作
大纲/内容
异常的分类
Error
java虚拟机无法处理问题
JVM系统内部错误
资源耗尽、内存溢出等
Exception
程序可处理
编译时期异常(check)
运行时期异常(uncheck)
体系结构
java.lang.Throwable
|-----java.lang.Error:一般不编写针对性的代码进行处理。
|-----java.lang.Exception:可以进行异常的处理
|------编译时异常(checked)
|-----IOException
|-----FileNotFoundException
|-----ClassNotFoundException
|------运行时异常(unchecked,RuntimeException)
|-----NullPointerException
|-----ArrayIndexOutOfBoundsException
|-----ClassCastException
|-----NumberFormatException
|-----InputMismatchException
|-----ArithmeticException
异常的处理
try-catch-finally
定义:
将异常顺延到运行时期出现
一般不对运行时期异常处理
格式
try{
/可能产生异常的代码
catch(ExceptionName e){
/当产生ExceptionName1型异常时的处置措施
}
catch(ExceptionName2 e ){
/当产生ExceptionName2型异常时的处置措施
}finally{
无论是否发生异常,都无条件执行的语句(在异常抛出或语句return前执行)
finally在代码抛出异常或return之前前一步执行,即是对应程序快离开本方法前执行
}]
异常打印方法
getMessage() 获取异常学习,返回字符串
printStackTrace() 获取异常类名和异常学习,以及异常出现在程序中位置,返回void
throws
定义:向上抛出异常 给方法调用者
过程
1. "throws + 异常类型"写在方法的声明处。指明此方法执行时,可能会抛出的异常类型。
一旦当方法体执行时,出现异常,仍会在异常代码处生成一个异常类的对象,此对象满足throws后异常类型时,就会被抛出。异常代码后续的代码,就不再执行!
格式
throws 异常名1,异常名2。。。
注意:
① 子类抛出异常不能大于父类抛出异常
② 父类被重写方法没有抛出异常,子类就不能throws,只能自己try-catch处理异常
应用场景
递进关系异常传递,将异常抛给最上层处理
异常生成方式
系统自动生成的异常对象
手动的生成一个异常对象,并抛出(throw)
异常生成后未进行处理,则会直接在异常生成的地方结束当前程序
自定义异常
1、继承于现有结构RuntimeException(运行时期异常)、Exception
运行时期异常抛出时,编译器不会识别报错
2、生成自己的全局常量:serialVersionUID
3、重写异常构造方法
收藏
0 条评论
下一页