Javase基础之异常处理篇笔记

Javase基础
一、 异常及处理
/**
异常:运行期间出现的错误,不是编译时出现的语法错误

异常分类:
	RuntimeException 运行时异常    非检查性异常
	
	IOException 非运行时异常   检查性异常

*/
一般常见异常有如下图
1、AWTError(AWT组件出错):这个错误并不是很常用。但是提一下AWT与Swing的区别,AWT是使用操作系统中的图形函数的抽象窗口工具,用C\C++编写,为了实现Java“一次编译,处处运行”的理念,AWT使用各个操作系统图形函数的交集,所以功能较差,但运行速度较快,适合嵌入式Java;
而Swing组件是基于AWT编写的图形界面系统,它用纯Java编写,所以必然实现了“一次编译,处处运行”,但相较于AWT运行速度较慢,适合PC使用。(此处AWTError讲解转载至链接:https://blog.csdn.net/zhangliangzi/article/details/51290026)
2、EOFException表示输入过程中意外地到达文件尾或流尾的信号,导致异常

在这里插入图片描述
/**
异常的处理步骤:抛出异常->捕获异常–>处理异常

异常的处理方式	
	自行处理(积极处理):try代码块中抛出异常,catch中检测异常的类型,catch代码块中处理异常
		try{
			可能出现异常的代码
		}catch(异常的类型  对象名 ){
			异常的处理
		}
		
	注意:try...catch之间不允许存在其他代码
		try...catch必须成对使用
		从异常抛出的代码之后,不会在继续执行
	
	风险:把所有代码放进try块中,如果没有对应异常类型的检测,则没有办法处理对应的异常
	
	finally:使用在catch代码块之后,不管是否出现异常,都会执行
		
	回避异常(消极处理)
		throws

*/
1、
throws关键字
如果一个方法中的语句执行时可能生成某种异常,但是并不能确定如何处理,则可以在程序所在的函数声明后,使用throws关键字抛出异常
位置:函数参数列表的后面
throws关键字后面,可以跟多个异常,中间用逗号分割
throws关键字抛出的异常,由调用该函数的函数处理。

练习题
编写一个方法,比较两个字符串。假如其中一个字符串为空,会产生NullPointerException异常,在方法声明中通告该异常,并在适当时候触发异常,然后编写一个程序捕获该异常。

在这里插入图片描述

二、方法调用堆栈
后进先出:方法A调用方法B的时候,只有方法B先完成后,方法A才完成。先执行的方法总是后完成,后执行的方法先完成,类似于数据结构中的堆栈--后进先出,我们称之为方法调用堆栈。
如示例,仅有一条语句抛出异常,会导致所有的方法都不能正常结束。如果不想出现这样的情况,我们就要使用java的异常处理机制-抓抛模型
在这里插入图片描述
三、自定义异常类
1、如果Java提供的异常类型不能满足程序设计的需要,我们可以定义自己的异常类型。
2、用户自定义的异常类应为Exception 类(或者Exception 类的子类)的子类

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值