javaSE基础学习笔记 day10 异常

本文主要介绍了Java中的异常处理机制,包括异常的抛出和捕获。在异常处理中,抛出异常分为系统自动生成和手动抛出两种情况。处理异常的方式主要有try-catch-finally结构,以及使用throws关键字声明异常。异常分为编译时异常和运行时异常,对于运行时异常,通常不使用try-catch-finally,而是通过修改代码来避免。此外,还讨论了如何自定义用户异常类,需要继承Exception或RuntimeExcepetion,并提供构造器和serialVersionUID。
摘要由CSDN通过智能技术生成

异常处理:抓抛模型

1.抛:程序在正常执行过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象,并将此对象抛出,抛出对象后,其后的代码不再执行。
关于异常对象的产生:
①系统自动生成的对象
②手动生成的对象,并抛出(throw)。
例:throw new XxxExcepetion();

2.抓:异常的处理方式

①try-catch-finally

try{
	//可能出现异常的代码块
}catch(异常类型1 变量名1){
	//处理异常方式1
}catch(异常类型2 变量名2){
	//处理异常方式2
}finally{//finally是可选的
	//一定会执行的代码块
}

如果匹配了某一个catch,则执行catch中的语句后跳出 try-catch 结构,多个catch中若有字父类关系,则子类的一定要在父类之上,否则会报错。

常用的异常处理方式:String getMessage();void printStackTrace();

finally的使用:

  1. finally中声明的是一定执行的代码,即使catch中又出现异常,try中有return,catch中有return。
  2. 像数据库连接,IO流,JVM是不能自动回收的,我们需要自己手动进行资源释放,此时就需要声明在 finally 中,防止发生异常后无法释放资源。

②throws
用法: throw + 异常类型,写在方法声明处,表明在该方法执行时,可能会抛出该异常类型。

异常的分类

  1. 编译中异常
  2. 运行时异常

体会:
① try-catch-finally 处理编译中异常时使编译器不报错,但运行时仍可能报错,相当于将编译时异常延迟到运行时异常。
②在开发时,对于运行时异常,通常不去写 try-catch-finally ,而是直接修改代码。

用户自定义异常类

  1. 需要继承与现有的异常结构:RuntimeExcepetion,Excepetion
  2. 提供全局常量:serialVersionUID
  3. 提供重载的构造器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值