各位小伙伴们我们好,这次小编要介绍的是Java当中的异常,首要咱们来介绍一下反常的概念,反常是指程序在履行过程中呈现的非正常情况,最终导致JVM的非正常中止。
在Java等面向目标的编程语言中,反常本身是一个类,发生反常就是创建反常目标并抛出了一个反常目标,反常指的并不是语法错了,语法错了编译不通过,不会发生字节码文件程序不会运转。Java处理反常的方法是中断处理。
在反常体系中,反常的根类是java.lang.Throwable,其下有两个子类:java.lang.Error与java.lang.Exception,往常所说的反常指java.lang.Exception。反常机制其实是协助咱们找到程序中的问题。
Java中反常有两种,一种是Exception,编译期反常,进行编译Java程序呈现的问题,其下有一个子类RuntimeException,运转期反常,Java程序运转过程中呈现的问题。
反常就相当于一个人得了一点小伤风,把反常处理掉程序就能够持续履行。
第二种,Error是过错,这种情况下,程序就像生了一场大病,必须修正源代码,就像做手术,程序才能够持续履行。
反常的处理一,代码如下:
publicclassDemo05Exception{
publicstaticvoidmain(Stringargs[])throwsParseException{
//Exception:编译反常,进行编译Java程序呈现问题
SimpleDateFormatsdf=newSimpleDateFormat("https://zzzjtd.com/");//用来格式化日期
Datedate=sdf.parse("2019-122");//把字符串日期,解析为Date日期
System.out.println(date);
}
}
throwsParseException利用虚拟机进行处理,反常会被直接抛出在控制台上:Exceptioninthread"main"java.text.ParseException:Unparseabledate:"2019-122"。
反常处理方法二,代码如下:
publicclassDemo05Exception{
publicstaticvoidmain(Stringargs[]){
//Exception:编译反常,进行编译Java程序呈现问题
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");//用来格式化日期
Datedate=null;//把字符串日期,解析为Date日期
try{
date=sdf.parse("2019-122");
}catch(ParseExceptione){
e.printStackTrace();
}
System.out.println(date);
System.out.println("把反常处理掉,后续程序持续履行");
}
}
用trycatch处理反常代码之后,后续的程序会持续运转。
反常二,RuntimeException:运转期反常,Java程序运转过程中呈现问题。
代码如下:
publicclassDemo05Exception{
publicstaticvoidmain(Stringargs[]){
//RuntimeException:运转期反常,Java程序运转过程中呈现的问题
char[]arr={'a','b','c'};
System.out.println(arr[4]);
System.out.println("把反常处理掉,后续程序持续履行");
}
}
反常:Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException:4
反常处理,代码如下:
publicclassDemo05Exception{
publicstaticvoidmain(Stringargs[]){
//RuntimeException:运转期反常,Java程序运转过程中呈现的问题
char[]arr={'a','b','c'};
try{
//可能会呈现反常的代码
System.out.println(arr[4]);
}catch(Exceptione){
//反常的处理逻辑
System.out.println(e);
}
System.out.println("把反常处理掉,后续程序持续履行");
}
}
第二种反常,Error过错:
publicclassDemo05Exception{
publicstaticvoidmain(Stringargs[]){
int[]arr=newint[1024*1024*1024];
System.out.println("把反常处理掉,后续程序持续履行");
}
}
运转成果:Exceptioninthread"main"java.lang.OutOfMemoryError:Javaheapspace,数组长度溢出,需求对代码进行处理。
关于Java中的反常小编就先提到这里,主要有两种,一种是Exception,编译期反常,进行编译Java程序呈现的问题,其下有一个子类RuntimeException,运转期反常,这些反常通过一些简单的处理之后程序是能够运转的。还有一种是报错Error,这种需求修正源代码。期望这篇文章能够帮到我们,也欢迎各位小伙伴弥补和纠错。