异常

本文详细介绍了Java中的异常处理机制,包括Throwable、Exception和Error的区别,异常的产生与传递过程,以及try、catch、finally等关键字的使用方法。此外还探讨了checked与unchecked异常的特点以及如何自定义异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Throwable

错误

异常

所有的异常都是由 Throwable 继承而来, 在下一层分解为 Error 和 Exception 两个分支。 Error 类用于表示程序不试图恢复的不可查严重错误的情况。 应用程序不应该抛出这种类型的对象。如果出现这种错误,我们只能把信息通知给用户然后尽量安全地终止程序。程序一般不处理这类情况。 

Exception 类是所有可查和不可查异常的父类。出现这种情况的时候最好不要中断程序而是编写代码处理异常。 

RuntimeException 类是用于由程序错误产生的不可查异常的父类, 它表示设计或实现中的问题,而程序本身编译没有问题。也就是说程序正确运行的话这种情况是不会出现的

二、异常

异常根类:Exception

异常产生及传递的机制及对代码运行的影响

异常是在运行时可能产生,如果异常产生了,异常产生后的代码终止运行。

虚拟机是如何处理异常:

当有异常产生时,虚拟机会创建一个异常对象,接着查看所在语句块是否有异常处理机制,如果有,本地处理,如果没有,查找上一层的调用者,如果上一层也没有处理机制,会继续抛到上一层,一直找到main方法为止,如果main方法也没处理,虚拟机直接关闭

异常处理机制

try,catch,finally

try

是必须要有的,当这个语句块中产生异常时,异常之后的语句不会执行

catch

可以有多个语句块,多个语句块时,每个catch捕获一种类型异常,父类型异常必须放在后面

当某种异常产生后,对应的语句块才会执行,如果没有产生异常,所有的catch块都不会运行

finally:不管是否有异常产生,这个语句块中的代码肯定会执行的

try,catch,finally可以如何组合:try...catch,try...catch...finally,try...finally

throw,throws

当一个异常本地不能处理时,需要系统统一处理,可以将它抛出

throw 抛出异常

throws 声明抛出异常,标识这个方法会抛出哪些类型的异常,用在方法声明中,告诉方法调用者要负责处理异常

try,catch,finally本地处理,开销要小

throw开销要大,但在开发过程中,通常底层产生异常后,应该由系统统一来处理,并给用户返回合适的提醒、建议

异常分类

checked异常:如果一个异常强制要程序员来写try...catch,或声明抛出来处理,那么它是checked异常

unchecked异常 :如果一个异常不强制程序员处理,就是unchecked异常,要定义unckecked异常,只需要继承RuntimeException

自定义异常

最基本的要求是继承Exception

三、异常快捷键

alt+shift+z

如果在一个方法内要求抛出多个异常,那么在方法声明后面使用 throws 子句,并且各

个异常使用“,”隔开: 

public  void  reflect(Class  cl)  throws  SecurityException, 

NoSuchFieldException 

如果在子类中覆盖了一个父类抛异常的方法, 子类中声明的可查异常不能超过父类方法声明的异常范围。 换句话说就是子类方法中抛出的异常只能是父类方法抛出异常相同的类或其子类,或者根本不抛出任何异常。如果父类方法没有抛出任何可查异常,那么子类的方法也不能抛出任何可查异常

值得注意的是,catch 子句的顺序很重要,如果 catch 的多个异常有继承关系,按代码顺序,先 catch 的异常的范围要求比后 catch 的异常范围小,也就是说,先 catch 的异常是后 catch 的异常的子类:

习惯上自定义异常类包括两个构造器:一个默认构造器和一个带有描述信息的构造器,

然后您可以自己定义一些必要的属性和方法

要引发自己创建的异常只需要创建该异常的实例,然后使用 throw 语句即可




内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值