首页 / JAVA / Java基础-异常处理
Java基础-异常处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java基础-异常处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1870字,纯文字阅读大概需要3分钟。
内容图文
概念
“程序运行时,经常会出现一些非正常的现象,如死循环、非正常退出等,称为运行错误。根据错误性质将运行错误分为两类:错误( E rror )和异常( Exception )”
E rror 一般由系统进行处理,程序本身无需捕捉和处理,只能通过提示 Error 信息检查、改正程序。
E xception (除数为 0 或操作数超出数据范围等)是在程序运行(而非编译)期间可能出现的现象,通过在程序中加入异常处理代码,使得产生异常时可执行该代码段调整程序运行方向,此过程称为异常处理。
我们总希望错误被发现、处理的越早越好,但有的错误只有在运行时才会发生,因此需要在程序中加入捕获、处理异常的代码,使得系统健壮性有所体现。
分类
J ava 语言采用面向对象的机制来处理异常。类之间结构为:
所有的异常类均继承自 T hrowable 类, Throwable 类继承自 O bject 类,可见 Java 对异常控制是非常重视的。 Throwable 封装了异常类所应具备的基本方法:
getMessage() 返回异常的具体描述信息
getStackTrace() 返回异常的堆栈信息
printStackTrace() 打印异常的堆栈信息。
E rror :系统内部错误
E xception :可以处理的异常
R untimeException :不必 try...Catch
其他非运行异常子类:必须 catch 的 Exception ( API 帮助中方法后面 T hrows 的异常类)
处理
一般说来,系统捕获抛出的异常并输出相应的信息,同时终止程序运行,导致其后程序无法运行。我们需要让程序接收和处理异常对象,从而不影响其他语句的执行,使程序更加严谨,防止数据库结构泄。这些就是捕获异常的意义所在。
使用 try-catch-finally 语句捕获和处理异常: try 语句块将有可能抛出一个或多个异常对象的方法包含起来,出现异常时进行捕获; catch 语句可以有多个,分别处理不同类的对象,当出现异常时, Java 运行时系统将从上往下依次查看 catch 语句处理类型是否与抛出类型一致,进而执行 catch 语句块内容,因此在捕获异常时,异常类之间存在继承关系,则应将子类的 catch 语句块放置到父类的 catch 语句块之前;无论 try 语句块的内容是否抛出异常, finally 语句块内容始终都会得到执行,因此 finally 语句块通常进行资源清理工作(关闭打开文件、删除临时文件等)。
使用 throw 语句可以在程序中主动抛出异常。
使用 throws 关键字在方法声明中表示该方法将抛出异常,格式如下:
[ <修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>]
一个方法抛出异常后,系统将异常向上传播,由调用他的方法来处理这些异常或继续向上传播。
自定义异常类, J ava 可通过创建 Exception 的子类来创建异常类,创建自定义异常类可考虑以下几点:
1. Java 异常类体系中不包含所需要的异常类型。
2. 用户需要将自己所提供类的异常与其他人提供的异常进行区分。
3. 类中将多次抛出这种类型的异常。
4. 如果使用其它程序包中定义的异常类,将影响程序包的独立性与自包含性。
比较 .NET 异常处理
J ava 与 .NET 在异常处理的本质上是没有区别的,但在其语法表现上仍然需要区分:在 .NET 中没有 throws 语句,无需在声明方法时标出异常。
.NET 中的异常分为两类:
1. 程序执行所发生的异常,派生于 A pplicationException 类
2. 公共运行库引发的异常,派生于 S ystemException 类
这里异常处理机制同样也很简单,对可能出现异常的部分进行捕捉、处理,如果不能在当前处理,可通过 throw 抛出异常,交由调用者进行处理。
总结
异常处理是在今后工作中不可或缺的一项技能,在这里不能一一的分析每个异常类出现的处理方式,只能在具体问题中具体处理,而 A PI 帮助文档,是我们不可或缺的工具,相信随着经验的不断积累,对异常问题的处理也会变得越来越灵活,程序实现也更加健壮。
原文:http://blog.csdn.net/lfsfxytgb9_lyg/article/details/18316167
内容总结
以上是互联网集市为您收集整理的Java基础-异常处理全部内容,希望文章能够帮你解决Java基础-异常处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。