异常-异常处理

什么是异常?

异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序

程序运行 --->异常-----> 程序中断运行

生活中面对异常通常会这样处理:
  • 堵车! 绕行或者等待
  • 撞车! 请求交警解决
  • 生活中,根据不同的异常进行相应的处理,而不会就此中断我们的生活

什么是异常处理?

Java编程语言使用异常处理机制为程序提供了错误处理的能力

程序中预先设置好对付异常的处理办法  ---> 程序运行---> 异常
对异常进行处理------->处理完毕,程序继续运行

Java中如何进行异常处理?

Java的异常处理是通过5个关键字来实现的:try、catch、finally、throw、throws

            捕获异常                声明异常

try      声明方法可能要      产生异常的代码

catch 捕获异常
finally 无论是否发生异常,代码总能执行

throws  声明方法可能要抛出的各种异常    声明异常

throw  手动抛出异常       抛出异常

try-catch块

使用try-catch块捕获异常,分为三种情况:
第一种情况 :正常

public void method(){
try {
// 代码段(此处不会产生异常) 
} catch (异常类型 ex) {
// 对异常进行处理的代码段
}
// 代码段
}
try ------ catch
try-catch 块后的代码段
第二种情况:出现异常
使用try-catch块捕获异常,分为三种情况:
public void method(){
try {
     // 代码段 1
     //产生异常的代码段2
     //代码段3
} catch (异常类型 ex) {
     // 对异常进行处理的代码段4
}
     // 代码段5
异常是一种特殊的对象,类型为 java.lang.Exception 或其子类

第三种情况:异常类型不匹配

public void method(){
try {

 // 代码段 1
 // 产生异常的代码段 2 
 // 代码段 3
} catch (异常类型 ex) {
// 对异常进行处理的代码段4
}
   // 代码段5 
}

try--->发生异常---->产生异常对象 ---> 异常类型不匹配---->程序中断运行

System.err.println("出现错误:被除数和除数必须是整数, ”+"除数不能为零。");

e.printStackTrace();

调用方法输出异常信息
调用方法输出异常信息
方法名说明
void printStackTrace()输出异常的堆栈信息
 String getMessage()返回异常信息描述字符串,是printStackTrace()输出信息的一部分
常见的异常类型
异常类型说明
Exception 异常层次结构的父类
ArithmeticException算术错误情形,如以零作除数
ArrayIndexOutOfBoundsException数组下标越界
NullPointerException 尝试访问 null 对象成员
 ClassNotFoundException不能加载所需的类
IllegalArgumentException方法接收到非法参数
ClassCastException对象强制类型转换出错
NumberFormatException  数字格式转换异常,如把"abc"转换成数字

try-catch-finally
在try-catch块后加入finally块
– 是否发生异常都执行
– 不执行的唯一情况
存在return的try-catch-finally块
public void method(){
   {
   // 代码段 1
   // 产生异常的代码段 2
   } catch (异常类型 ex) {
   // 对异常进行处理的代码段3
    执行return退出方法
   }  { 
   // 代码段 4
   }
 }
多重catch块
▪ 引发多种类型的异常
    – 排列catch 语句的顺序:先子类后父类
    – 发生异常时按顺序逐个匹配
    – 只执行第一个不异常类型匹配的catch语句
public void method(){
try {
// 代码段
// 产生异常(异常类型2)
} catch (异常类型1 ex) {
// 对异常进行处理的代码段
} catch (异常类型2 ex) {
// 对异常进行处理的代码段
} catch (异常类型3 ex) {
// 对异常进行处理的代码段
}
// 代码段
}
自定义异常
何时需要自定义异常?
当JDK 中的异常类型不能满足程序的需要时,可以自定义异常类
使用自定义异常的步骤:
1.定义异常类
2.编写构造方法,继承父类的实现
3.实例化自定 义异常对象
4.使用throw 抛出
继承Excepion 或者RuntimeException
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值