文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java异常怎么自定义

2023-07-05 12:05

关注

这篇文章主要介绍“Java异常怎么自定义”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java异常怎么自定义”文章能帮助大家解决问题。

异常方法

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

自定义异常

作用

让控制台的报错信息更加的见名知意

定义

定义异常类,写继承关系。
名字要见名知义,继承于异常类。
像运行时可以继承RuntimeException
在开发过程中一般会有多种异常类,小的会继承自定义的大的。

写构造方法
需要书写空参和带参的构造。
可以调用父类的也可以自定义

增强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创建对象2try(变量名1;变量名2){}catch(){}

上面的代码可以改写成,
不过需要注意的是创建对象也需要异常处理,我们这里选择抛出

public void testTryWithResource() throws FileNotFoundException {    BufferedInputStream b = new BufferedInputStream(new FileInputStream(""));    try (b) {    } catch (Exception e) {        e.printStackTrace();    }}

关于“Java异常怎么自定义”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯