变态就是变态。比如当我们身体出现异常的时候,我们会根据自己的身体状况选择喝白开水、吃药、看病等异常的治疗方法。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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。