1. 异常体系
Throwable 类是java语言中所有Error类与Exception类的超类(superclass)。除RuntimeException类和Error类及它们的子类之外,Throwable类及其子类称为检查异常(checked exception)。
RuntimeException类和Error类及它们的子类,被称为非检查异常(unchecked exception)。当JVM产生并抛出Error异常时,指示系统出现了严重的问题,而一个合理的应用程序都不应该捕获该异常,应该不catch,或者catch后抛出。
Java异常体系继承图如下,
2.异常示例
2.1 非检查异常(运行时异常)NullpointException
1
2
3
4
5@Test void nullPointExceptionTest(){ Staff staff = null; staff.getAge(); }
执行结果
java.lang.NullPointerException
at ...
2.2 可检查异常 ClassNotFoundException
1
2
3
4
5
6
7
8@Test void classNotFoundException(){ try { Annotation[] hellos = Class.forName("Hello").getAnnotations(); } catch (ClassNotFoundException e) { e.printStackTrace(); } }
执行结果
java.lang.ClassNotFoundException: hello
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:340)
at ...
2.3 非检查异常(Error子类)StackOverflowError
1
2
3
4
5
6
7
8
9
10
11int stackDeep = 0; @Test void stackOverflowErrorTest(){ getName("hello"); } private String getName(String name){ stackDeep++; System.out.println("Stack Deep: "+stackDeep); return getName(name); }
执行结果
Stack Deep: 5287
java.lang.StackOverflowError
at java.base/java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:585)
at java.base/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:301)
at java.base/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:290)
at java.base/sun.nio.cs.StreamEncoder.write(StreamEncoder.java:131)
at java.base/java.io.OutputStreamWriter.write(OutputStreamWriter.java:208)
at java.base/java.io.BufferedWriter.flushBuffer(BufferedWriter.java:120)
at java.base/java.io.PrintStream.writeln(PrintStream.java:722)
at java.base/java.io.PrintStream.println(PrintStream.java:1028)
at ...
最后
以上就是精明小猫咪最近收集整理的关于Java异常体系-Throwable、Error、Exception的全部内容,更多相关Java异常体系-Throwable、Error、Exception内容请搜索靠谱客的其他文章。
发表评论 取消回复