异常
2023-04-18 19:50:38 7 举报
AI智能生成
异常的基本使用以及基本知识点
作者其他创作
大纲/内容
四、自定义异常
1、自定义运行时异常
写一个类继承自RuntimeException
编写有参和无参构造
2、自定义编译期异常
写一个类继承自Exception
编写有参和无参构造方法
3、应用场景
1、一般在系统的异常无法满足自己公司需求的时候,会自定义异常
2、自定义异常一般和throw抛出一起配合使用
五、方法重写
继承中方法的重写
子类重写父类的方法,不能抛出比父类更大、更多的编译期异常
一、异常的概念
1、程序在运行时出现的错误,称之为异常
2、如果异常不处理,那么就会终止java虚拟机的运行。意味着出现异常后面的代码就不会再执行了
二、异常的分类
Throwable(异常的父类)
Error(错误)
内存溢出、硬件等等(程序员无法通过程序解决)
Exception(异常)
运行期异常(未检查)
程序运行期间出现的异常:RuntimeException
举例:空指针异常、类转换异常、数组下标越界异常、输入异常、下标越界异常等
编译期异常(受检)
程序在编译期间出现的异常
举例:ParseException InterruptedException等
三、异常的解决(异常处理机制)
如果正确的处理了异常,那么不会终止JVM的运行
1、捕获(主动处理):try、catch、finally
语法:try{可能会出现异常的代码}catch(要捕获的异常类型1 变量名){ 如果出现对应异常所执行的代码}catch{...}...
catch需要注意的点
1、catch中捕获的异常类型必须与出现异常的类型一致(大于等于),否则相当于没有处理异常
2、catch中的异常类型可以捕获多个,注意:捕获异常的顺序是从小到大
3、捕获异常的时候,可以捕获最大的异常Exception
finally的特点:
1、无论代码是否出现异常,都会执行finally中的代码
2、一般在finally写,释放资源的代码
3、如果方法中出现return关键字,finally依旧会执行,(但如果调用System.exit(0);那么finally不会再执行
4、try、catch、finally使用语法:
try{...}catch(){...}一起使用
try{...}catch(){...}catch(){...}一起使用
try{...}finally{...}一起使用
try{...}catch(){...}catch(){...}finally{...}一起使用
finally不能单独使用
5、捕获异常 代码执行的顺序
先执行try中的代码
1、没有异常,正常执行完整个程序
2、有异常,就会执行对应catch语句块。而try后面的代码就不会再执行
2、抛出(被动处理):
1、在方法上声明 throws
语法:public void show() throws 异常的类型1,异常类型2{}
特点:
1、如果在方法上声明异常,那么方法的调用者就要进行处理
2、如果异常声明在了main方法上,实际上就是给JVM处理(那就是没有处理)
3、声明异常可以声明多个
场景:
1、当前无法对异常进行处理的时候,就可以把异常抛给方法的调用者
2、现在如果代码出现异常(直接try、catch)
特殊案例:
如果在main方法上声明(抛出)异常,那么这个异常就交给了main方法的调用者,而main方法的调用者是JVM,所以这个异常并没有处理
2、在方法内部抛出 throw
语法:throw 异常对象;
特点:
1、如果抛出运行期异常,那么直接抛出即可
2、如果抛出编译期异常,那么需要在方法上声明抛出
场景:
一般写框架的时候设计
3、总结:
1、运行期异常,可以利用逻辑判断解决(避免)
2、编译器异常,必须要解决 现在如果代码出现异常(直接try、catch)
0 条评论
下一页