如何处理Java异常实例详解(全套源码资料)

这篇文章主要介绍了Java异常处理实例详解,列举了实际例子讲解的很清晰,有感兴趣的同学可以学习下

1. 异常例子

`class` `TestTryCatch {`

`public` `static` `void` `main(String[] args){`

`int` `arr[] =` `new` `int``[``5``];`

`arr[``7``] =` `10``;`

`System.out.println(``"end!!!"``);`

`}`

`}`

输出:(越界)


`Exception in thread` `"main"` `java.lang.ArrayIndexOutOfBoundsException:` `7`

`at TestTryCatch.main(TestTryCatch.java:``4``)`

`进程已结束,退出代码``1`

2. 异常处理

`class` `TestTryCatch {`

`public` `static` `void` `main(String[] args){`

`try` `{`

`int` `arr[] =` `new` `int``[``5``];`

`arr[``7``] =` `10``;`

`}`

`catch` `(ArrayIndexOutOfBoundsException e){`

`System.out.println(``"数组范围越界!"``);`

`System.out.println(``"异常:"``+e);`

`}`

`finally` `{`

`System.out.println(``"一定会执行finally语句块"``);`

`}`

`System.out.println(``"end!!!"``);`

`}`

`}`

输出:


`数组范围越界!`

`异常:java.lang.ArrayIndexOutOfBoundsException:` `7`

`一定会执行``finally``语句块`

`end!!!`

3. 抛出异常

语法:throw 异常类实例对象;


`int` `a =` `5``, b =` `0``;`

`try``{`

`if``(b ==` `0``)`

`throw` `new` `ArithmeticException(``"一个算术异常,除数0"``);`

`else`

`System.out.println(a+``"/"``+b+``"="``+ a/b);`

`}`

`catch``(ArithmeticException e){`

`System.out.println(``"抛出异常:"``+e);`

`}`

输出:


`抛出异常:java.lang.ArithmeticException: 一个算术异常,除数``0`

对方法进行异常抛出


`void` `add(``int` `a,` `int` `b)` `throws` `Exception {`

`int` `c = a/b;`

`System.out.println(a+``"/"``+b+``"="``+c);`

`}<br type=``"_moz"``>`


`TestTryCatch obj =` `new` `TestTryCatch();`

`obj.add(``4``,` `0``);`

输出:(报错)

`java: 未报告的异常错误java.lang.Exception; 必须对其进行捕获或声明以便抛出`

可见,方法后面跟了 throws 异常1, 异常2...,则 必须 在调用处 处理

改为:


`TestTryCatch obj =` `new` `TestTryCatch();`

`try``{`

`obj.add(``4``,` `0``);`

`}`

`catch` `(Exception e){`

`System.out.println(``"必须处理异常:"``+e);`

`}`

输出:


`必须处理异常:java.lang.ArithmeticException: / by zero`

4. 编写异常类

语法:(继承 extends Exception 类)


`class` `异常类名` `extends` `Exception{`

`......`

`}<br>`


`class` `MyException` `extends` `Exception{`

`public` `MyException(String msg){`

`// 调用 Exception 类的构造方法,存入异常信息`

`super``(msg);`

`}`

`}`

`try``{`

`throw` `new` `MyException(``"自定义异常!"``);`

`}`

`catch` `(Exception e){`

`System.out.println(e);`

`}`

输出:


`MyException: 自定义异常!`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值