java-异常--常见方法--自定义异常--增强try(try-with-resources)
创始人
2024-06-02 00:59:27
0

异常方法

//返回此可抛出对象的详细信息消息字符串
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();}
}

相关内容

热门资讯

描写雪的诗句 描写雪的诗句(精选50句)  在平日的学习、工作和生活里,说到诗句,大家肯定都不陌生吧,诗句一般饱含...
大班诗歌《秋天的颜色》 大班诗歌《秋天的颜色》  在平日的学习、工作和生活里,大家都对那些朗朗上口的诗歌很是熟悉吧,诗歌节奏...
倚窗思秋,心缠绵散文 倚窗思秋,心缠绵散文(通用22篇)  在生活、工作和学习中,大家都接触过散文吧?狭义上的散文是指与诗...
端午节诗歌朗诵稿小学 端午节诗歌朗诵稿小学(通用20首)  在社会发展不断提速的今天,大家最不陌生的就是朗诵稿了吧,朗诵是...
前世今生缘诗歌 前世今生缘诗歌  我曾是佛前一朵靑莲。  为实现前世今生的缘,  佛前我千年沉睡。  千百度轮回,等...
我就在你身旁诗歌 我就在你身旁诗歌  风紧了  你可曾感到一丝的寒  而我就在你的身旁  默默地追随着  你的足迹  ...
经典感人父爱诗歌朗诵 经典感人父爱诗歌朗诵  父爱如山。那关于经典感人父爱诗歌朗诵有那洗饿呢?下面是小编整理的关于经典感人...
五一赞美劳动者现代诗歌简短1... 五一劳动节是一个法定节假日,具有重要的意义,2021年五一劳动节就要到了,那五一赞美劳动者现代诗歌简...
秋天诗歌 秋天诗歌大全  在现实生活或工作学习中,说到诗歌,大家肯定都不陌生吧,诗歌在形式上,不是以句子为单位...
两相忘爱情诗歌 两相忘爱情诗歌  昨夜雨落旦微凉  休怪小女思君长  天微凉  思君长  青丝丈量君远行  君远行 ...
母亲节赞美母爱励志唯美诗歌 母爱是灿烂的阳光,当我们失败的时候,母爱总会给我们带来的温暖和鼓励!那母亲节赞美母爱励志唯美诗歌有哪...
赞美家乡的诗歌 赞美家乡的诗歌(精选10首)  在学习、工作或生活中,说到诗歌,大家肯定都不陌生吧,诗歌是表现诗人思...
歌颂抗击疫情的诗歌 歌颂抗击疫情的诗歌歌颂抗击疫情的诗歌1  抗击新肺炎,一场没有硝烟的战争  活跃着一群身影  他们的...
终究不是一路人诗歌 终究不是一路人诗歌  磁场不合的人,终究不是一路人  有些人,  你见到第一眼,就感觉很舒服;  有...
诗歌写作方法有哪几种 诗歌写作方法有哪几种  诗歌是一种抒情言志得文学体裁。《毛诗—大序》记载:“诗者,志之所之也。在心为...
我想去远方诗歌 我想去远方诗歌  去一个我从未走过的地方  没有楼阁 没有烦恼  那布满灰尘的喧嚣  有太多太多的争...
描写国庆节的诗歌范文5篇 在日常的学习、工作、生活中,大家都听说过或者使用过一些比较经典的诗歌吧,诗歌是按照一定的音节、韵律的...
描写感恩的文艺诗歌精简版5篇 感恩常在,有没有哪件小事,一不小心就戳中了你的心,有没有哪个人,猝不及防就走进你的心房。下面是小编为...
泰戈尔感恩母亲的诗歌 泰戈尔感恩母亲的诗歌  导语:泰戈尔感恩生命,顺理而下,当然感恩直接哺育婴儿长大成人的母亲。以下小编...
有这样一群人诗歌 有这样一群人诗歌  城市街道上有这样一群人  他们的衣着很特别,很显然,是统一的橙色加银黄  他们的...