java中异常捕获和异常处理,java异常处理是怎样实现的
如何解决写爬虫IP受阻的问题?立即使用。
【相关学习推荐:java基础教程】
java异常捕获与处理的方法:
一、异常处理的使用
由于finally块可以省略,异常处理格式可以分为三类:try{ }——catch{},try {} 3354 catch {} 3354 finally {},try{ }——finally{}。
1公共类交易异常
2 {
3公共静态void main(String args[])
4 {
5尝试
6 //要检查的程序语句
7 {
8 int a[]=new int[5];
9a[10]=7;//出现异常
10 }
11 catch(ArrayIndexOutOfBoundsException ex)
2//异常发生时的处理语句
13 {
14 System.out.println(“超出数组范围!”);
15 }
16终于
7//这个代码块一定会被执行
18 {
19 system . out . println( * * * * * );
20 }
21 System.out.println(“异常处理结束!”);
22 }
23}可以看出,在异常捕捉的过程中需要做出两个判断。第一个是try块中是否有异常,第二个是生成的异常是否与catch()括号中要捕获的异常相同。
那么,如果出现的异常与您想在catch()中捕获的异常不同,该怎么办呢?事实上,一个try语句后面可以跟几个异常处理catch语句来处理许多不同类型的异常。
1公共类交易异常
2 {
3公共静态void main(String args[])
4 {
5尝试
6 //要检查的程序语句
7 {
8 int a[]=new int[5];
9a[0]=3;
10a[1]=1;
11//a[1]=0;//除数为0时出现异常
12//a[10]=7;//数组下标越界时出现异常
13 int result=a[0]/a[1];
14 System.out.println(结果);
15 }
16 catch(ArrayIndexOutOfBoundsException ex)
7//异常发生时的处理语句
18 {
19 System.out.println(数组越界异常);
20 ex . printstacktrace();//显示异常的堆栈跟踪信息
21 }
22 catch(ArithmeticException ex)
23 {
24 System.out.println(算术运算异常);
25 ex . printstacktrace();
26 }
27最后
28 //这个代码块一定会被执行
29 {
30 System.out.println(无论有无异常,finally语句都将被执行。);
31 }
3System.out.println(“异常处理结束!”);
33 }
34}上例中的ex . printstacktrace();就是异常类对象ex的使用,输出详细的异常栈跟踪信息,包括异常的类型,异常的哪个包,类,方法,行号。
二、throws关键字
throws声明的方法意味着该方法不处理异常,系统自动将捕获的异常信息抛出给上级调用方法。
1公共类throwsDemo
2 {
3公共静态void main(String[] args)
4 {
5 int[]a=new int[5];
6尝试
7 {
8 setZero(a,10);
9 }
10 catch(ArrayIndexOutOfBoundsException ex)
11 {
12 System.out.println(数组越界错误!);
13 System.out.println(异常: ex );
14 }
15 system . out . println( main()方法)的结尾);
16 }
17私有静态void setZero(int[] a,int index)抛出ArrayIndexOutOfBoundsException
18 {
19 a[index]=0;
20 }
21} throws关键字抛出异常。“ArrayIndexOutOfBoundsException”表示setZero()方法可能的异常类型。一旦方法出现异常,setZero()方法不会自己处理它,而是将异常提交给它的上级调用者main()方法。
三、throw关键字
Throw用于手动抛出异常类的实例化对象。
1个公共类throwDemo
2 {
3公共静态void main(String[] args)
4 {
5尝试
6 {
7 //引发异常的实例化对象
8 throw new arrayindexoutofBoundsException( \ n个性化异常信息:\ n数组下标越界);
9 }
10 catch(ArrayIndexOutOfBoundsException ex)
11 {
12 system . out . println(ex);
13 }
14 }
15}我们可以发现throw好像没事找事,导致运行时异常,自定义提示信息。事实上,throw通常与throws一起使用,throws抛出一个已经在程序中生成的异常类实例。
例外的梦
输出结果:
SetZero方法开始:
setZero方法结束。
异常:Java . lang . arrayindexoutofbounds异常:10
main()方法结束!
四、RuntimeException类
Exception和RuntimeException的区别:
异常:用户必须处理它;
RunException:是Exception的子类,用户可以选择是否处理。
五、自定义异常类
自定义异常类继承自异常类。可以使用父类的很多方法,也可以自己编写方法来处理特定的事件。Java提供了一种继承的方式来运行用户自己编写的异常类。
1类MyException扩展异常
2 {
3公共MyException(字符串消息)
4 {
5超(消息);
6 }
7 }
8公共类定义的异常
9 {
10公共静态void main(String[] args)
11 {
12试试
13 {
1 trownewmyexception( \ n自定义异常类!);
15 }
16 catch(MyException e)
17 {
18 system . out . println(e);
19 }
20 }
20}以上是如何捕捉和处理java异常的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。