异常产生的原因
因为硬件缺失,程序不够严谨,必须的内容缺失导致的程序问题称为异常 类似与人生病
异常的分类
Throwable Error: 证明硬件出现问题,不处理
常见的错误:
OutOfMemoryError:内存溢出异常,可以通过程序优化解决.现在的计算机一般很少见到此异常
Exception: 因为程序语法错误或思考不足导致的
检查时异常:CheckedException 处理方法:修改代码,正确书写语法格式
运行时异常:RuntimeException 处理方法:通过判断等类似方案处理
常见的运行异常
NullPointerException:空指针异常
ArrayIndexOutOfBoundsException:
数组下标越界异常
ClassCastException:类型转换异常
ArithmeticException:算数异常
了解异常
诞生原因:
1,调用的方法声明了异常
2,因为程序思考不足导致的
3异常的传递: 在A方法中调用B方法,在B方法调用C方法...X方法 如果x方法出现异常会导致向上传递
JVM对异常的处理方案: 让程序闪退 所以不要将异常留给JVM解决
处理异常
核心目的:保证程序不要闪退,可以正常运行
方案: 1,捕获异常处理异常
语法:try{ 有可能出现异常的代码 }catch(异常种类1 变量名){ 异常种类1的处理方案 }catch(异常种类2 变量名){ 异常种类2的处理方案 } ... catch(异常种类n 变量名){ 异常种类n的处理方案 }finally{ 必须要执行的代码 }
catch:必须有一个
finally:可有可无
catch:多个异常,先子后父
2,声明异常
关键字:throws
使用位置: 方法上,形参之后,方法体之前
注意:可以一次声明多个异常
3,抛出异常
关键字:throw
使用位置: 方法中
语法: throw 异常类对象;
建议:使用throw时,必须配合throws
自定义异常
步骤: 1,创建一个类 2,继承与异常类 3,定义无参构造,定义有参构造