java 异常的实例详解

1、异常的定义:程序在运行时出现不正常情况。
异常的划分:
Error:严重的问题,对于error一般不编写针对性的代码对其进行处理。
Exception:非严重的问题,对于exception可以使用针对性的处理方式进行处理。
2、异常的处理:(固定格式)
try {需要被检测的代码;} catch(异常类 变量) {处理异常的代码(处理方式);}//这里应当是要有针对性的处理方式 finally {一定会执行的语句;}//通常是关闭资源的代码,因为资源必须得到释放
对多异常的处理方式:
1、声明异常时,建议声明更为具体的异常,这样处理起来就更加的具体。
2、对方声明几个异常,就对应及格catch块,不要定义多余的catch块,如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。
*在进行catch处理时,catch中一定要定义具体的处理方式。
*catch是用于处理异常,如果没有catch就代表异常没有被处理过,如果该异常是检测时异常,那么必须声明。
Runtime异常:(即运行时异常)
是Exception中一个特殊的子类异常。
如果在函数内抛出该异常,函数上可以不用声明,编译一样通过;如果在函数上声明了该异常,调用者可以不用进行处理,编译一样通过。
之所以用在函数上声明,是因为不需要让调用者处理。
异常在子父类覆盖中的体现;
1,子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类。
2,如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集。
3,如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。
如果子类方法发生了异常。就必须要进行try处理。绝对不能抛。
throws 和 throw 的区别:
throws:使用在函数上(小括号和大括号之间),后面跟的是异常类,可以跟多个。中间用“,”(逗号)隔开。
throw: 使用在函数内,后面跟的是异常对象。throw后面不能加语句,因为throw后面的语句无法执行到。
习题练习:
/*需求:毕老师用电脑上课。 分析: 先写出正常运行时的代码:电脑开机后上课 分析电脑会出现的问题,如:蓝屏,冒烟 此时需要自定义两个“蓝屏,冒烟“”自定义异常,封装成对象。 蓝屏后,电脑重启,之后继续上课 电脑冒烟后,出现了老师的问题,不能上课了,可以先做练习,毕老师将问题抛给校长。此时抛出的问题不再是电脑冒烟,而应该是老师不能上课了 问题抛给校长后,校长catch后给出解决方案 */
class LanPingException extends Exception //自定义蓝屏异常
{
LanPingException(String message)
{
super(message);
}
}
class MaoYanException extends Exception//自定义冒烟异常
{
MaoYanException(String message)
{
super(message);
}
}
class NoclassException extends Exception//自定义不能上课异常
{
NoclassException(String message)
{
super(message);
}
}
class Computer
{
private int state = 2;//硬性规定电脑状态
//问题是在运行时发生的,所以得定义在运行时
public void run()throws LanPingException,MaoYanException//因为有可能出现错误,所以必须先声明
{
if (state==2)
{
throw new LanPingException("电脑蓝屏了。。。");//因为电脑不能自己处理,所以抛给了老师
}
if (state==3)
{
throw new MaoYanException("电脑冒烟了。。。");
}
System.out.println("电脑开机,运行中。。。。");
}
public void restart()
{
System.out.println("电脑重启。。。。");
}
}
class Teacher
{
private String name;
private Computer comp;
Teacher(String name)
{
this.name = name;
comp = new Computer();//初始化时老师就有电脑了
}
public void test()
{
System.out.println("做练习");
}
public void teach() throws NoclassException//标识应该是抛出去的异常,能够进行处理的
{
try
{
comp.run();//讲课,要先开启电脑
}
catch (LanPingException e)//抛出了两个异常,必须用两个catch
{
System.out.println(e.getMessage());
comp.restart();
}
//这个问题抛给老师的话依旧无法解决,应该抛出对应的问题,这里老师抛出的问题应该是不能上课了
catch (MaoYanException e)
{
test();//不能上课,可以先布置练习,这个必须在throw 之前,因为throw之后的语句不会执行
throw new NoclassException(e.getMessage()+",无法继续上课");
}
System.out.println(name+",上课中。。。。");
}
}
class ExceptionTest
{
public static void main(String[] args)
{
Teacher t = new Teacher("毕老师");//指定一个老师
try
{
t.teach();//老师运行这个方法
}
catch (NoclassException e)//抓住对应的抛出的问题
{
System.out.println(e.toString());//打印出问题原因
System.out.println("自习或者放假");//处理办法
}
}
}
当电脑状态为1时,输出为: 电脑开机,运行中。。。。 毕老师,上课中。。。。 当电脑状态为2时,输出为: 电脑蓝屏了。。。 电脑重启。。。。 毕老师,上课中。。。。 当电脑状态为3时,输出为: 做练习 NoclassException: 电脑冒烟了。。。,无法继续上课 自习或者放假
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# 异常
# 异常的详解
# 异常使用方法
# Java异常 Exception类及其子类(实例讲解)
# Java自定义异常类的实例详解
# Java异常处理运行时异常(RuntimeException)详解及实例
# java异常处理详细介绍及实例
# Java 异常的栈轨迹(Stack Trace)详解及实例代码
# Java中自定义异常详解及实例代码
# java 异常详解及应用实例
# Java异常处理实例教程
# Java异常处理实例分析
# java简单自定义异常实例代码
# 抛出
# 子类
# 自定义
# 多个
# 的是
# 重启
# 课中
# 应该是
# 几个
# 也不
# 是在
# 是因为
# 放在
# 有可能
# 就有
# 调用者
# 如有
# 要有
# 这个问题
# 对其
相关文章:
如何在阿里云香港服务器快速搭建网站?
如何在Windows环境下新建FTP站点并设置权限?
如何通过多用户协作模板快速搭建高效企业网站?
建站主机选择指南:服务器配置与SEO优化实战技巧
Python文件管理规范_工程实践说明【指导】
如何快速搭建响应式可视化网站?
小型网站制作HTML,*游戏网站怎么搭建?
建站之星如何保障用户数据免受黑客入侵?
建站VPS能否同时实现高效与安全翻墙?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
广州美橙建站如何快速搭建多端合一网站?
制作网站的模板软件,网站怎么建设?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
如何在局域网内绑定自建网站域名?
网站制作企业,网站的banner和导航栏是指什么?
如何撰写建站申请书?关键要点有哪些?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
如何在IIS7上新建站点并设置安全权限?
如何在服务器上三步完成建站并提升流量?
如何用好域名打造高点击率的自主建站?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
如何在阿里云完成域名注册与建站?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
建站主机SSH密钥生成步骤及常见问题解答?
建站之星2.7模板:企业网站建设与h5定制设计专题
网站制作的步骤包括,正确网址格式怎么写?
建站主机如何选?性能与价格怎样平衡?
制作旅游网站html,怎样注册旅游网站?
建站主机默认首页配置指南:核心功能与访问路径优化
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
开封网站制作公司,网络用语开封是什么意思?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
建站之星导航配置指南:自助建站与SEO优化全解析
山东网站制作公司有哪些,山东大源集团官网?
建站之星如何优化SEO以实现高效排名?
建站之星如何快速生成多端适配网站?
如何用美橙互联一键搭建多站合一网站?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
临沂网站制作公司有哪些,临沂第四中学官网?
网站微信制作软件,如何制作微信链接?
建站之星安装需要哪些步骤及注意事项?
建站之星上传入口如何快速找到?
西安大型网站制作公司,西安招聘网站最好的是哪个?
如何在云服务器上快速搭建个人网站?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
兔展官网 在线制作,怎样制作微信请帖?
如何注册花生壳免费域名并搭建个人网站?
如何在阿里云域名上完成建站全流程?
江苏网站制作公司有哪些,江苏书法考级官方网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。