异常
来源:互联网 发布:巨人网络街篮客服 编辑:程序博客网 时间:2024/06/05 04:30
一、异常就是程序出现不正常的情况
二、异常的分类
- Error 严重问题,我们不处理
- RuntimeException 运行期异常,需要修正代码
- 非RuntimeException 编译器异常,必须要处理,否则编译不通过
三、异常的处理
- JVM的默认处理
- 把异常的名称,原因,位置等信息输出在控制台,但是程序不能继续执行了
- 自己处理
- try…catch…finally
自己编写处理代码,后面的程序可以继续执行 - throws
把自己处理不了的,在方法上声明,告诉调用者,这里有问题
- try…catch…finally
四、异常中要了解的几个方法
- public String getMessage(): 异常的消息字符串
- public String toString(): 返回异常的简单消息描述
- printStackTrace() 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。把信息输出在控制台。
五、JDK7出现的新异常处理方案
try{ }catch(异常名1 | 异常名2 | ... 变量 ) { ... } 注意:这个方法虽然简洁,但是也不够好。 A:处理方式是一致的。(实际开发中,好多时候可能就是针对同类型的问题,给出同一个处理) B:多个异常间必须是平级关系。
六、finally
- 被finally控制的与具体一定会执行
- 如果在执行到finally之前jvm退出了,就不能执行了
七、自定义异常类
- 子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏)
- 如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
- 如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws
八、注意事项
- try里面的代码越少越好 ,catch里面必须有内容,哪怕是给出一个简单的提示。(要不无意义)
- 异常用try的时候一定要注意初始化
- 在try里面发现问题后,jvm会帮我们生成一个异常对象,然后把这个对象抛出,和catch里面的类进行匹配,如果该对象是某个类型的,就会执行该catch里面的处理信息,然后结束了try…catch继续执行后面的语句
- 异常能明确的尽量明确,不要用大的来处理
- 平级关系的异常谁前谁后无所谓,如果出现了子父关系,父必须在后面
附:如果catch里面有return语句,请问finally里面的代码还会执行吗?如果会,请问是在return前,还是return后。
答: 会。前。
阅读全文
0 0
- 异常
- 异常!
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 浅谈Java中的对象和对象引用
- mycat2.0配置文件datasource.yml参数说明(switchType)
- Vue——渲染(文本、列表)、列表数据更新
- 基于opencv和Tensorflow的实时手势识别(2)
- 抱着陌生的态度再看Rxjava(二)
- 异常
- python中的函数
- tensorflow: 对variable_scope进行reuse的两种方法
- Java基础(4)-循环语句和随机数
- Python入门教程完整版(懂中文就能学会)
- springboot vue 登录页面01 每天进步百分之一
- 常用框架
- 电脑
- 微擎load()文件加载器