Java异常处理
来源:互联网 发布:手机号码免费定位软件 编辑:程序博客网 时间:2024/06/14 08:02
注意:
* 1.当程序可能出现多种异常,而且又要为这些异常一一处理时,后面依次列写catch语句块 * 2.但所列写的catch应该满足从子类到父类的异常处理,如上面,第一和二两个异常都是Exception的子类 * 3.finally语句跟在catch语句后面,用来实行一些出现异常后要进行的处理 * 4.处理运行时异常时,采用逻辑去合理规避,同时辅助try_catch处理 * 5.在多重catch后面,可以加上一个catch(Exception e)癞处理可能被遗漏的异常 * 6.对于不确定的代码,可以加上try_catch,处理潜在的异常 * 7.尽量去处理异常,切忌只是简单的调用printStackTrace()去打印输出 * 8.尽量添加finally语句块去释放占用的资源
代码实例:
public class Try_catch { public static void main(String[] args){ Scanner input=new Scanner(System.in); try{ System.out.println("请输入第一个数:"); int one=input.nextInt(); System.out.println("请输入第二个数:"); int two=input.nextInt(); System.out.println("两数相除得:"+one/two); }catch(InputMismatchException e){ e.printStackTrace(); System.out.println("请输入数字!!!"); }catch(ArithmeticException e){ System.out.println("除数不能为零!!!"); e.printStackTrace(); }catch(Exception e){ e.printStackTrace(); System.out.println("未知的异常!!!"); }finally{ System.out.println("finally语句块用来善后,比如出现异常后关闭一些文件等"); } System.out.println("程序结束!"); }}
自定义异常:
注意:自定义异常类必须继承于与之相近的异常类或是Exception
【由于有了含参的构造器,编译器便不会再给分匹配无参构造器,而有时候需要使用,所以可以再添加一个无参的构造器】
public class Custom_Exception extends Exception{ public Custom_Exception(){ } public Custom_Exception(String message){//含参的构造器 super(message); }}
异常链:
initCause()方法对异常进行包装的,目的为了出了问题的时候能够追根究底。因为一个项目,越往底层,可能抛出的异常类型会用很多,如果你在上层想要处理这些异常,你就需要挨个的写很多catch语句块来捕捉异常,这样是很麻烦的。如果我们对底层抛出的异常捕获后,抛出一个新的统一的异常,会避免这个问题。
public class Exception_link { public static void main(String[] args) { Exception_link cs=new Exception_link(); try{ cs.test2(); }catch(Exception e){ e.printStackTrace(); } } public void test1() throws Custom_Exception{ //调用自定义的异常类 throw new Custom_Exception("喝酒别开车!"); } public void test2(){ try{ test1(); }catch(Custom_Exception e){ //构造RuntimeException RuntimeException newExc=new RuntimeException("司机一滴酒,亲人两行泪"); newExc.initCause(e); //将原异常包装,抛出运行时异常 throw newExc; } }}
阅读全文
0 0
- 【java】java异常处理
- java异常和异常处理
- Java 异常及异常处理
- java异常与异常处理
- Java异常处理-----自定义异常
- Java异常与异常处理
- java异常及异常处理
- Java 异常与异常处理
- Java异常与异常处理
- Java异常及异常处理
- Java异常处理--自定义异常
- JAVA异常之异常处理
- Java异常处理-----自行处理
- Java异常处理-----抛出处理
- Java异常处理-----抛出处理
- java异常处理
- java 异常处理分析
- java异常处理
- 2017百度之星资格赛—1003度度熊与邪恶大魔王
- SQL语句基础模板
- HDU.2147 kiki's game (博弈论 PN分析)
- 简述47种Shader Map的渲染原理与制作方法
- 多边形重心问题 java
- Java异常处理
- CodeForces
- MOBITEL
- ROS Kinetic系统在ubuntu16.04配置
- python numpy基础
- 题目1:40人,随机分成十组,每组四人,姓名用序号代替。
- HDU.2516 取石子游戏 (博弈论 斐波那契博弈)
- 更加深入剖析Kafka--Producer篇(上)
- 在eclipse中快速打开项目中的文件(夹)在硬盘的位置