package com.tao.exception_; /** * Create By 刘鸿涛 * 2021/12/31 13:21 */ public class Exception01 { public static void main(String[] args) { int num1 = 10; int num2 = 0; //当执行到 num1 /num2 因为 num2 = 0,程序就会出现(抛出)异常 ArithmeticException //当抛出异常后,程序就退出了,崩溃了,下面的代码就不再运行 //思考:这样不好,不应该出现了一个不知名的问题,就导致整个系统崩溃 //java设计者,提供了一个叫 异常处理机制来解决该问题 // int res = num1 / num2; //如果程序员认为,这一段代码可能出现异常/问题,可以使用try-catch异常处理机制来解决 //从而保证程序的健壮性 //将该代码块 -> 选中 ->快捷键 -> ctrl + alt + t - >选中 try-catch //如果进行异常处理,那么即使出现了异常,程序可以继续执行 try { int res = num1 / num2; } catch (Exception e) { // e.printStackTrace(); //报错信息,可更改为以下内容 System.out.println("出现异常的原因 : " + e.getMessage()); //这样会好看一点 } System.out.println("程序继续运行..."); } }
出现异常的原因 :by zero
程序继续运行
- Error(错误):Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError【栈溢出】和OOM(out of memeory),Error是严重错误,程序会崩溃。。
- Excepton:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如空指针访问,试图读取不存在的文件,网络连接中断等等,Excepiton分为两大类:运行时异常【】和编译时异常【】
异常分为两大类,运行时异常和编译时异常
运行时异常,编译器不要求强制处理的异常。一般是指编程时的逻辑错误,是程序员应该避免其出现的异常。java.lang.RuntimeException类即它的子类都是运行时异常
对于运行时异常,可以不做处理,因为这类异常很普遍,若全处理可能会对程序的可读性和运行效率产生影响
编译时异常,是编译器要求必须处置的异常