Error
:毛病是顺序没法处置惩罚的毛病,这些毛病标识毛病发作于虚拟机自身或许发作在虚拟机试图实行应用时,平常不须要顺序处置惩罚。
Error(毛病)和exception(非常)都是java.lang.Throwable
类的子类。Error毛病是任何处置惩罚手艺都没法恢复的状况。这肯定会致使顺序非正常停止。Error毛病属于未搜检范例,大多数发作在运行时。Error毛病的一些例子是内存不足毛病或体系崩溃毛病。
// 经由过程无穷递归演示客栈溢出毛病 class StackOverflow { public static void test(int i) { if (i == 0) return; else { test(i++); } } } public class ErrorEg { public static void main(String[] args) { StackOverflow.test(5); } }
输出:
Exception in thread "main" java.lang.StackOverflowError at StackOverflow.test(ErrorEg.java:7) at StackOverflow.test(ErrorEg.java:7) at StackOverflow.test(ErrorEg.java:7) at StackOverflow.test(ErrorEg.java:7) at StackOverflow.test(ErrorEg.java:7) ...
exception
:是顺序自身能够处置惩罚的非常。
非常是在运行时发作并能够致使顺序停止的前提。然则,运用try
、catch
和throw
关键字能够恢复它们。
非常分为两类:已搜检非常和未搜检非常。编译器在编译时晓得已搜检的非常(如IOException
),而编译器在运行时晓得未搜检的非常(如ArrayIndexOutOfBoundException
)。它主如果由顺序员编写的顺序引发的。
public class ExceptionEg { public static void main(String[] args) { int a = 5, b = 0; try { int c = a / b; } catch (ArithmeticException e) { e.printStackTrace(); } } }
输出:
java.lang.ArithmeticException: / by zero at ExceptionEg.main(ExceptionEg.java:8)
相干引荐:《Java教程》
本篇文章就是关于Java中error和exception的区分引见,愿望对须要的朋侪有所协助!
以上就是Java中error和exception的区分的细致内容,更多请关注ki4网别的相干文章!