异常
1、Throwable:
①Exception编译期异常;
包括RuntimeException运行期异常;
②Error错误;
③异常处理步骤
2、throw关键字
作用:在指定的方法中抛出指定的异常。
格式:throw new xxxException(“产生异常的原因”);
注意:
①必须写在方法的内部;
②new的是Exception或它的子类对象
③抛出后,必须处理这个指定的异常:
A:如果是RuntimeException或者是它的子类对象,可以不处理,默认交给JVM(打印异常对象,中断程序);
B:编译期异常,要么throws,要么try……catch
3、Objects非空判断
Objects的静态方法requireNonNull查看指定的引用对象是不是null。
private static void methon(Object obj) { Objects.requireNonNull(obj,"传递的是null"); }
4、throws关键字
作用:第一种处理异常的方式,把异常对象声明 抛出给 方法的调用者处理,最终给到JVM处理(中断)
格式:在方法声明时使用
注意:
①必须写在方法声明处;
②声明的异常必须是Exception或者它的子类;
③方法内部抛出多个异常,throws必须声明多个异常,(声明了父类可以不声明子类)
④调用声明抛出异常的方法,必须处理声明的异常,要么继续throws,交给调用者处理,要么try……catch自己处理。
5、try……catch
处理异常的的第二种方式,自己处理。
格式:
try {
可能产生异常的代码
}catch(定义一个异常的变量,接收try中抛出的异常对象){
一般会把异常信息记录到日志中
}catch……
finally{
……
}
注意:①catch可以多个;
②finally不能单独使用,一般用于资源回收
6、Throwalbe类中3个异常处理的方法:
①getMessage()
返回此 throwable 的详细消息字符串
②String toString()
返回此 throwable 的简短描述
③void printStackTrace()
将此 throwable 及其追踪输出至标准错误流。
7、异常捕获处理
①多个异常分别处理;
②多个异常一次捕获,多次处理;
注意的是,catch定义的异常变量,如果有子父类关系,那子类的异常变量必须写在上面,否则报错。原因是多态,下边是子类的话没有用了。
③多个异常一次捕获一次处理。
8、子父类异常,父类异常是什么样,子类抛出的异常不能超过父类。
父类方法没抛出异常,子类重写父类方法时也不可抛出,只能捕获处理。
9、自定义异常类
①跟定义类一样,要继承Exception或者 RuntimeException,处理方法跟自带的一样。
添加空参数构造方法,添加一个带异常信息的构造方法。
②注意:类名一般以Exception结尾;
- 点赞
- 收藏
- 分享
- 文章举报
- Oracle数据库Constraint约束的常用操作及异常处理
- 2.6 基于异常的设计
- 黑马程序员:try-catch异常的处理
- openfire登录出现“SASLError using DIGEST-MD5: not-authorized”异常的解决
- springmvc 异常处理器
- Windows Phone 7 异常的人性化处理
- 友盟登录 java.lang.ClassNotFoundException异常解决记录
- java.sql.SQLException: Io 异常: Connection reset
- Spring Boot 使用AOP切换多数据源时,被@Transactional注解的方法会抛异常
- 异常处理上机题1
- Tomcat与JavaWeb 3.3 JSP的异常处理、发布和PageContext
- Java编程中异常处理的优劣之道
- 异常“企图释放并非呼叫方所拥有的多用户终端运行程序”的处理
- android处理全局异常
- java.lang.UnsupportedClassVersionError: Bad version number in .class file异常 .
- 区分运行时异常和受检查异常【文摘+转】
- WINCE6.0+ILI9806E休眠唤醒显示异常问题
- RSA 分段加解密【解决“不正确的长度”的异常】
- 关于决解EasyUI中Tabs标签页下使用百度地图API异常
- 未捕获异常,现实程序崩溃闪退