Java中常见的异常分析_JavaSE第七十五讲:异常笔试、面试常见问题深度剖析 | 学步园...

自定义两个异常如下:

package com.ahuier.exception;

public class MyException extends Exception{

/*

* 参考ArithmeticException的实现

* 使用supe关键字可以保证将字符串的信息一层一层网上传到Throwable类让其维护字符串描述信息

*/

public MyException(){

super();

}

public MyException(String message){

super(message);

}

}

package com.ahuier.exception;

public class MyException2 extends Exception{

public MyException2(){

super();

}

public MyException2(String message){

super(message);

}

}

写一个测试异常类:

package com.ahuier.exception;

public class ExceptionTest4 {

public void method(String str) throws MyException, MyException2{

if(str == null){

throw new MyException("传入的字符串参数不能为null");

}

else if(str.equals("hello")){

throw new MyException2("传入的字符不能为hello");

}

else{

System.out.println(str);

}

}

/*

* 根据多态,也可以抛出 Exception类型的异常:

* 1) throws Exception

* 2) 捕获也可以这样写 catch(Exception e)

*/

public static void main(String[] args) throws MyException{

try{

ExceptionTest4 test = new ExceptionTest4();

test.method("hello");

}catch(MyException e){

System.out.println("进入到MyException catch块");

e.printStackTrace();

}catch(MyException2 e){

System.out.println("进入到MyException catch块2");

e.printStackTrace();

} //这部有可能会抛出两种异常,有可能抛出的都必须用catch捕获

finally{

System.out.println("异常处理完毕");

}

System.out.println("程序执行完毕");

}

}

编译执行

com.ahuier.exception.MyException2: 传入的字符不能为hello

at com.ahuier.exception.ExceptionTest4.method(ExceptionTest4.java:9)

at com.ahuier.exception.ExceptionTest4.main(ExceptionTest4.java:25)

进入到MyException catch块2

异常处理完毕

程序执行完毕

【说明】:这边 test.method("hello");传入的是“hello”,则进入MyException2的catch块,如果是test.method(null);传入的是null,则进入MyException的catch块。通过这个程序可以知道,一个程序有多种抛出异常的可能,都要去捕获这些异常,每一个catch捕获一种异常类型。

分析以上程序ExceptionTest4:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值