JVM对异常的默认处理方案

简介: JVM对异常的默认处理方案 1 package cn.itcast_01; 2 3 /* 4 * 异常:程序出现了不正常的情况。 5 * 6 * 举例:今天天气很好,班长出去旅游。

JVM对异常的默认处理方案

 1 package cn.itcast_01;
 2 
 3 /*
 4  * 异常:程序出现了不正常的情况。
 5  * 
 6  * 举例:今天天气很好,班长出去旅游。骑着自行车,去山里面呼吸新鲜空气。
 7  *         问题1:山路塌陷了,班长及时停住了,但是过不去了。严重的问题。
 8  *         问题2:班长出门推自行车,发现气没了,把气吹起来。出发前就应该检查的问题。
 9  *         问题3:班长骑着车在山路上惬意的行驶着,山路两边是有小石子的,中间是平坦的水泥路。
10  *             一直在平坦的水泥路上行驶是没有任何问题的,但是呢,他偏偏喜欢骑到小石子上,结果爆胎了。旅游的过程中出现的问题。
11  *             no zuo no die。
12  * 
13  * 程序的异常:Throwable
14  *         严重错误问题:Error     我们不处理。这种问题一般都是很严重的,我们一般处理不了,比如说内存溢出。
15  *         问题:Exception
16  *             运行期问题:RuntimeException            这种问题我们也不处理,因为是你写代码的问题,而且这个问题的出现肯定是我们的代码不够严谨,需要修正代码的。
17  *             编译期问题:不是RuntimeException的异常     必须进行处理的,因为你不处理,编译就不能通过。
18  *             
19  *         如果程序出现了问题,我们没有做任何处理,最终JVM会做出默认的处理。
20  *         把异常的名称、原因及出现的位置等信息输出在控制台。
21  *         同时会结束程序。
22  *         (但是呢,其余没有问题的程序就不能继续执行了)
23  *         所以感觉JVM的默认处理不够好,既然不好那我们就自己来处理呗。
24  */
25 public class ExceptionDemo {
26     public static void main(String[] args) {
27         // 第一阶段
28         int a = 10;
29         // int b = 2;
30         int b = 0;
31         System.out.println(a / b);
32         
33         /*
34          * JVM发现运算是已经违反了数学运算规则,java将这种常见的问题进行描述,并封装成了对象叫做类ArithmeticException(ArithmeticException 算术异常)。
35          * 当除0运算发生后,JVM就将该问题打包成了一个异常对象。
36          * 并将对象抛给调用者main函数,new ArithmeticException("/by zero");
37          *
38          * main函数收到这个问题时,有两种处理方式:
39          *        1:自己将该问题处理,然后继续运行程序。
40          *        2:自己没有针对的处理方式,只有交给调用main函数的JVM来处理。
41          *        
42          *        JVM有一个默认的异常处理机制:即将该异常进行处理,将该异常的名称、异常的信息和异常出现的位置打印在了控制台上,同时将程序停止运行。
43          */
44 
45         // 第二阶段
46         System.out.println("over");
47     }
48 }
程序的运行结果为:

Exception in thread "main" java.lang.ArithmeticException: / by zero at cn.itcast_01.ExceptionDemo.main(ExceptionDemo.java:31)

 

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
7月前
|
存储 缓存 算法
深入浅出JVM(二)之运行时数据区和内存溢出异常
深入浅出JVM(二)之运行时数据区和内存溢出异常
|
5月前
|
Arthas 存储 监控
JVM内存问题之JNI内存泄漏没有关联的异常类型吗
JVM内存问题之JNI内存泄漏没有关联的异常类型吗
|
5月前
|
缓存 算法 Java
JVM内存溢出(OutOfMemory)异常排查与解决方法
JVM内存溢出(OutOfMemory)异常排查与解决方法
|
7月前
|
存储 算法 Java
JVM-01Java内存区域与内存溢出异常(上)【运行时区域数据】
JVM-01Java内存区域与内存溢出异常(上)【运行时区域数据】
60 0
|
存储 缓存 Java
Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
236 0
Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
|
Java
强制要求JVM始终抛出含堆栈的异常(-XX:-OmitStackTraceInFastThrow)
强制要求JVM始终抛出含堆栈的异常(-XX:-OmitStackTraceInFastThrow)
171 0
|
监控 Java
jvm异常排查
jvm异常排查
55 0
|
Java
【Java异常】ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 JDWP exit erro
【Java异常】ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 JDWP exit erro
370 0
|
Java Linux 测试技术
《深入理解Java虚拟机》读书笔记(三)--堆栈异常代码示例
《深入理解Java虚拟机》读书笔记(三)--堆栈异常代码示例
118 0
|
IDE Java 开发工具
JVM-03内存区域与内存溢出异常(下)【OutOfMemoryError案例】
JVM-03内存区域与内存溢出异常(下)【OutOfMemoryError案例】
118 0