java中异常捕获和异常处理,java异常处理是怎样实现的

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: