Java异常--常见方法--自定义异常--增强try(try-with-resources)详解
异常方法
//返回此可抛出对象的详细信息消息字符串 public String getMessage() //将此可抛发对象及其回溯到标准错误流。此方法在错误输出流上打印此 Throwable 对象的堆栈跟踪 //最为详细 public void printStackTrace() //返回此可抛件的简短说明 public String toString()
对于1/0这个异常
try{
int i = 1/0;
} catch(Exception e){
System.out.println("e = " + e);
System.out.println("-----------------");
System.out.println("e.getMessage() = " + e.getMessage());
System.out.println("-----------------");
System.out.println("e.getStackTrace() = " + Arrays.toString(e.getStackTrace()));
System.out.println("-----------------");
System.out.println("e.getLocalizedMessage() = " + e.getLocalizedMessage());
System.out.println("-----------------");
System.out.println("e.getCause() = " + e.getCause());
System.out.println("-----------------");
System.out.println("e.getClass() = " + e.getClass());
System.out.println("-----------------");
System.out.println("e.getSuppressed() = " + Arrays.toString(e.getSuppressed()));
}e = java.lang.ArithmeticException: / by zero ----------------- e.getMessage() = / by zero ----------------- e.getStackTrace() = [省略27行,com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)] ----------------- //可能的原因 e.getCause() = null ----------------- //一个数组,其中包含为传递此异常而禁止显示的所有异常。 //就是用try捕获却不做事的 e.getSuppressed() = []
自定义异常
作用
让控制台的报错信息更加的见名知意
定义
1.定义异常类,写继承关系。
名字要见名知义,继承于异常类。
像运行时可以继承RuntimeException
在开发过程中一般会有多种异常类,小的会继承自定义的大的。
2.写构造方法
需要书写空参和带参的构造。
可以调用父类的也可以自定义
增强try(try-with-resources)
作用
简化释放资源的步骤
条件
自动释放的类需要实现autocloseable的接口
这样在特定情况下会自动释放,还有的就是stream流中提到过。
jdk7
try(创建对象资源1;创建对象资源2){
}catch(){
}例如这样的代码可以改写成
BufferedInputStream b = null;
try {
b = new BufferedInputStream(new FileInputStream(""));
}catch (Exception e) {
e.printStackTrace();
}finally {
if (b!=null) {
try {
b.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}try (BufferedInputStream b = new BufferedInputStream(new FileInputStream(""));){
}catch (Exception e) {
e.printStackTrace();
}jdk9
创建对象1
创建对象2
try(变量名1;变量名2){
}catch(){
}上面的代码可以改写成,
不过需要注意的是创建对象也需要异常处理,我们这里选择抛出
public void testTryWithResource() throws FileNotFoundException {
BufferedInputStream b = new BufferedInputStream(new FileInputStream(""));
try (b) {
} catch (Exception e) {
e.printStackTrace();
}
}到此这篇关于java-异常--常见方法--自定义异常--增强try(try-with-resources)的文章就介绍到这了,更多相关java自定义异常内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java线程池ThreadPoolExecutor原理及使用实例
这篇文章主要介绍了Java线程池ThreadPoolExecutor原理及使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-05-05
Java class文件格式之方法_动力节点Java学院整理
这篇文章主要为大家详细介绍了Java class文件格式之方法的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-06-06
springcloud之Feign、ribbon如何设置超时时间和重试机制
这篇文章主要介绍了springcloud之Feign、ribbon如何设置超时时间和重试机制,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-08-08
Springboot整合Socket实现单点发送,广播群发,1对1,1对多实战
本文主要介绍了Springboot整合Socket实现单点发送,广播群发,1对1,1对多实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-08-08


最新评论