,,Java异常Exception详细讲解

,,Java异常Exception详细讲解

变态就是变态。比如当我们身体出现异常的时候,我们会根据自己的身体状况选择喝白开水、吃药、看病等异常的治疗方法。java异常处理机制就是我们的Java语言使用异常处理机制,为程序提供处理错误的能力,如果程序出现错误,程序可以安全退出,从而保证程序的正常运行。

目录

1,Throwable2,异常中最大的父类,try-catch-finally三个语句。3、final-finally-finalize功能。4,throws关键字5,以及throws和throw的区别。

1、异常中最大的父类Throwable

Throwable可以分为两种类型:

错误

例外情况:

运行时异常(未检查异常)非运行时异常(已检查异常)

Error: Error是程序无法处理的错误。由jvm生成并抛出,如OutOfMemoryError、ThreadDeath等。当这些异常发生时,jvm将选择终止程序执行。

异常:是程序本身可以处理的异常。

运行时异常:都是RuntimeException类和子类,如NullPointerException(空指针)、IndexOutOfBoundException(数组越界)等。这些异常可以被捕获,也可以不处理:RuntimeException(检测到的异常)以外的异常,类型属于异常类,这些异常必须从程序语法的角度来处理。如果没有,可以编译程序,比如IOException和SQIException。

2、try-catch-finally三条语句注意的问题

尝试、捕捉、最后不能单独使用,但可以组合使用。组合方法有:试…抓,试…抓…最后,试…最后,这里可以有一个或多个抓。最后,变量作用域为代码块的语句只能有一个或三个,独立的不能互相访问。如果这三个块都是可访问的,那么在这些块之外定义变量。如果有多个catch块,只匹配一个异常类,最多执行catch块的代码,不执行其他catch块。而且匹配顺序是自上而下的,最多只会匹配一个异常类,也就是说没有捕捉到任何异常类的异常类都是不能重复的。并且先捕捉子类异常,再捕捉父异常。不管try中的语句有没有问题,finally中的语句都必须执行。最终为程序提供统一的出口,保证程序状态的统一管理。通常,最后,资源被关闭和清除。

包com.exception

公共类测试{

公共静态void main(String[] args) {

int[]a=new int[5];

尝试{

for(int I=0;i 10i ) {

a[I]=I;

}

//空指针

} catch(ArrayIndexOutOfBoundsException e){

//弹出错误的地方

system . out . println(“1”);

e . printstacktrace();

//访问异常,数组越界

}catch (NullPointerException e){

system . out . println(“2”);

e . printstacktrace();

//不管有没有错误,最后执行。

}最后{

System.out.println('可执行');

}

system . out . println('-');

}

}

3、final-finally-finalize的各作用

Final:用于定义常数的关键字finally:可以始终在异常finalize()中执行的代码块:垃圾收集。这个方法是系统调用,不是程序员手动调用的。

4、throws关键字

定义方法时,可以使用throws关键字声明该方法不会处理异常,而是将异常留给方法调用方处理。当定义一个方法时,throws关键字可以由程序员决定使用。如果使用它,则意味着该方法将不处理该异常。如果主方也使用了throws关键字,就意味着main方法也不会处理异常,最后还是留给jvm来处理。当jvm处理异常时,意味着终止程序抛出一个子类异常并调用该方法。

注意:

Throw关键字:是可以自定义异常的对象,即抛出异常,抛出时是异常类。

5、throws和throw的区别

投掷:

方法声明后,异常类名后面可以跟多个异常类,用逗号分隔,表示引发了异常。如果此方法的调用方处理引发,则表明可能会发生异常,但它不一定会发生。

投掷:

在方法体中,后跟异常对象,只能抛出一个异常对象,这意味着抛出一个异常。如果在方法体中有处理抛出异常的语句,这是必然会发生的,而不是可能的。

代码表示:

包com.test

公共类抛出{

//throws Exception意味着此方法不会处理该异常。

公共void存款(int num1,int num2)引发异常

{

//RuntimeException()是具有最大运行时异常的父类。

int sum

if(num2==0){

Throw new RuntimeException('可以自定义异常抛出:除数不能为0 ');

}否则{

sum=num 1/num 2;

}

}

}

本文对Java异常的详细解释就到此为止。更多相关Java异常内容,请搜索我们之前的文章或者继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

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