首页 / JAVA / Java异常处理总结
Java异常处理总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java异常处理总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3314字,纯文字阅读大概需要5分钟。
内容图文
![Java异常处理总结](/upload/InfoBanner/zyjiaocheng/673/04d65ae31db94f75af2b08c39ef6dfd2.jpg)
例如:数组越界和被0除 ? 异常处理的目的是依据实际情况提供不同的错误应对策略与手段,使程序更稳定,更安全。 ? 异常处理的主要用途是提供准确的错误消息,解释失败的原因、位置和错误类型等,同时提供一定的恢复能力,尽可能地保证数据完整性不被破坏,并让程序能继续运行。 ? Java中的异常捕获语句:
Try{
??? //可能发生运行错误的代码;
}
catch(异常类型???? 异常对象引用){
??? //用于处理异常的代码
}
finally{
??? //用于“善后” 的代码
} ? Java 中所有可捕获的异常都派生自 Exception 类。 ? 使用Java异常处理机制:
1.把可能会发生错误的代码放进try语句块中。
2.当程序检测到出现了一个错误时会抛出一个异常对象。异常处理代码会捕获并处理这个错误。
catch语句块中的代码用于处理错误。
3.当异常发生时,程序控制流程由try语句块跳转到catch语句块。
4.不管是否有异常发生,finally语句块中的语句始终保证被执行。
5.如果没有提供合适的异常处理代码,JVM将会结束掉整个应用程序。 ? Java中的异常分类:
??? Throwable类有两个直接子类:
??????? Exception:出现的问题是可以被捕获的;
??????? Error:系统错误,通常由JVM处理。
??? 可捕获的异常又可以分为两类:
??????? (1)Check异常:直接派生自Exception的异常类,必须被捕获或再次声明抛出
??????? (2)Runtime异常:派生自RuntimeException的异常类。使用throw语句可以随时抛出这种异常对象:
???????????????? throw new ArithmeticException(…); ? 另一个著名的Error——OOM Error:
1.在Android应用(它也使用Java开发)中,我们会经常碰到另一个Error,是
“OutOfMemoryError”,表示系统内存不足,这个Error简写为“OOM Error”。
2.Android应用之所以经常发生OOM,其原因在于手机的内存有限,在处理大图片等耗费大量内存资源的工作时,会耗尽可用内存。
3.与一般Error不太一样,在Android应用中通常需要catch OOM并手动释放内存,以避免Android强制结束引发OOM的应用程序。
JVM在具体实现这两个指令时,采用了不同的处理策略,导致两段代码运行时得到不同的结果
异常的“多态”特性:
1.可以有多个catch语句块,每个代码块捕获一种异常。在某个try块后有两个不同的catch 块捕获两个相同类型的异常是语法错误。
2.使用catch语句,只能捕获Exception类及其子类的对象。因此,一个捕获Exception对象的catch语句块可以捕获所有“可捕获”的异常。
3.将catch(Exception e)放在别的catch块前面会使这些catch块都不执行,因此Java不会编译这个程序。 ? “finally”的功用:
1.资源泄露:当一个资源不再被某应用程序使用,但此程序并未向系统声明不再使用此资源时发生这种情况
2.finally语句块主要用于解决资源泄露问题,它位于catch语句块之后,JVM保证它们一定执行。
##注意:finally语句块中也可能发生异常,如果这种情况发生,先前的异常被放弃。 ? 如何跟踪异常的传播路径:
1.当程序中出现异常时,JVM会依据方法调用顺序依次查找有关的错误处理程序。
2.可使用printStackTrace 和 getMessage方法了解异常发生的情况:
??? 2.1printStackTrace:打印方法调用堆栈。
??? 2.2每个Throwable类的对象都有一个getMessage方法,它返回一个字串,这个字串是在??? Exception构造函数中传入的,通常让这一字串包含特定异常的相关信息。 ? throws 语句: 1.throws语句表明某方法中可能出现某种(或多种)异常,但它自己不能处理这些异常,而需要由调用者来处理。
2.当一个方法包含throws子句时,需要在调用此方法的代码中使用try/catch/finally进行捕获,或者是重新对其进行声明,否则编译时报错。
? 受控与不受控的异常:
1.throws语句中声明的异常称为受控(checked)的异常,通常直接派生自Exception类。
2.RuntimeException(其基类为Exception) 和Error(基类为Throwable)称为非受控的异常。这种异常不用在throws语句中声明。
3.CheckedExceptionDemo.java示例展示了上述两种异常的特性。
内容总结
以上是互联网集市为您收集整理的Java异常处理总结全部内容,希望文章能够帮你解决Java异常处理总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。