异常的处理办法之一

捕获异常(try,catch,finally)

1 try语句指定了一段代码,该段代码就是一次捕获并处理的范围。在执行过程中,当任意一条语句产生异常时,就会跳过该段中后面的代码。代码中可能会产生并抛出一种或几种类型

的异常对象,它后面的catch语句要分别对这些异常做相应的处理

注:当异常处理的代码执行结束后,是不会回到try语句去执行尚未执行的代码。

2 finally语句无论是否发生异常都会执行:通过 在finally中关闭程序块已打开的资源,比如:文件流,释放数据库连接等

3 catch语句

每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。

常用方法:

toString()方法,显示异常的类名和产生异常的原因

getMessage()方法,只显示产生异常的原因,但不显示类名

printStackTrace()方法,用来跟踪异常事件发生时堆栈的内容

这些方法均继承自Throwable类

catch捕获异常时的捕获顺序:如果异常类之间有继承关系,在顺序安排上需注意,越是顶层的类,越放在下面,再不然就直接把多余的catch省略掉(需要把子类

FileNotFoundException

放前面 ,父类

IoException

放后面)

try{
FileReader reader= new FileReader("d:/a.txt");
char c= (char)reader.read();
}catch(FileNotFoundException e){
e.pintStacktrace();
}catch(IoException e){
e.pintStacktrace();
}

如果运行程序时遇到异常,会先执行finally语句块,然后才返回try中的return,如果finally中有return,刚返回return中的值

最新文章

  1. 拖拽手势和清扫手势冲突时(UIPanGestureRecognizer和UISwipeGestureRecognizer冲突时)
  2. ACM提交结果简介
  3. 一步一步开发Game服务器(二)登陆2
  4. js 实现类似php函数number_format的功能
  5. 移动端图片滚动加载-lazyload实现的要点总结
  6. visual studio 2012 插件
  7. Python socket编程之七:多窗口的应用
  8. [SVN(ubuntu)] ubuntu使用svn
  9. [转载] Linux进程关系
  10. [原博客] HEOI2014 行记
  11. java web简易网上书店项目系列,使用MVC模式(servlet+jstl+dbutils),开篇
  12. RGB,CMYK,HSB各种颜色表示的转换 C#语言
  13. [转]Axis2创建WebService实例
  14. 72. Edit Distance(困难,确实挺难的,但很经典,双序列DP问题)
  15. Jquery样式
  16. web基础要点记录
  17. 一年过去了,25万月薪的AI工程师还存在吗?
  18. 函数式编程(1)-高阶变成(3)-sorted
  19. 【BZOJ 3238】 3238: [Ahoi2013]差异(SAM)
  20. [翻译]如何在HTML5中有效使用ARIA

热门文章

  1. .net socket 层面实现代理服务器
  2. RTP、RTCP及媒体流同步
  3. cocos2d-x CCScrollView和CCTableView的使用(转载)
  4. Android的图片缓存ImageCache(转)
  5. wpf 双击行。。获得行信息
  6. slide.js使用文档
  7. Linux常用命令之安装VMware10中安装CentOS 6.4
  8. 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
  9. SpringJDBC解析4-query方法
  10. nefu 197 KMP