异常的概念:

异常 两大类:编译时异常(编译出错) 和 运行时异常(类加载,运行出错)
大多都是运行时异常 例如:空指针,数组越界,数字转换失败等都可以处理

编译时异常:必须处理的异常

处理异常2种方式 捕获异常(try-catch-finally)抛出异常(throws)不写 默认是throws 往上抛出
1.捕获异常

2.抛出异常

1.捕获异常(try-)
try-cathch-finally(可有,必须会执行的)
try-catch
try-finall 不管有没有错误,直接输出finall的语句,程序崩溃,退出,因为没有catch 默认往上抛,jvm直接暴力结束
注意:如果代码块有多个异常,可以分别catch捕获,父类异常(excpetion)必须在后面

2.抛出异常(throw)

注意:
1. 编译异常必须手动处理 ,运行异常有默认的不用处理
2. 子类继承的方法 throws异常必须 相等 或者 是父类的子异常

demo:编译异常必须手动处理

自定义异常
继承 运行时异常 重写构造 throw抛出

throw和throws的区别
区别:
throw 后面跟 异常对象 不能有多 方法里面
throws 后面跟 异常类型 可有多 方法声明处后面

异常结构体系图

总结
常见的运行时异常:

常见的编译异常:

自定义异常:通常 继承 运行时异常类 业务中throw
无他,唯手熟而!!!
评论