异常Exception

it2026-09-21  1

异常

定义:异常指程序运行中出现的不期而至的各种状况 异常发生在程序运行期间,影响了正常的程序执行流程 Throwable是超类 分类: 检查性异常:用户错误或问题引起的异常 运行时异常 错误ERROR:脱离程序员控制的问题

Error 由Java虚拟机生成并抛出,大多数错误与代码编写者执行的操作无关

Exception 由程序逻辑错误引起的

Error与Exception的区别: Error通常是灾难性的致命错误,程序无法控制和处理,一旦出现,JVM一般会选择终止线程Exception通常情况下可以被程序处理,并在程序中应该尽可能的去处理这些异常

异常处理机制

步骤:抛出异常,捕获异常 关键字:try、catch、finally、throw、throws 格式如下:

try{ //try监控区域 }catch(Error e){ //捕获后的操作 }catch(Exception e){ e.printStackTrace();//打印错误的栈信息 }catch(Throwable e){ ........ }finally{ //程序无论出不出异常都会执行的代码,处理善后工作(可以不要finally) }

假设要捕获多个异常,由小到大! 快捷生成异常处理:command+option+T(Mac) Ctrl+alt+t(Windows)

public void test() throws Exception(){//假设这个方法中处理不了这个异常,则在方法上抛出异常 if(...){ throw new Exception();//主动抛出异常,一般用在方法中使用 } }

自定义异常

步骤:

创建自定义异常类在方法中通过throw关键字抛出异常对象若在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作在出现异常方法的调用者中捕获并处理异常 具体实现: public class MyException extends Exception{ //传递数字大于10 private int detail; public MyException(int a){ this.detail=a; } //toString:异常的打印信息 @Overrivide public String toString(){ return "MyException{"+detail+'}'; } } 这样MyException就能在别的异常处理机制中被throw、throws、catch了

经验总结

最新回复(0)