try {需要被检测的代码;} catch(异常类 变量) {处理异常的代码(处理方式);}//这里应当是要有针对性的处理方式 finally {一定会执行的语句;}//通常是关闭资源的代码,因为资源必须得到释放
/*需求:毕老师用电脑上课。 分析: 先写出正常运行时的代码:电脑开机后上课 分析电脑会出现的问题,如:蓝屏,冒烟 此时需要自定义两个“蓝屏,冒烟“”自定义异常,封装成对象。 蓝屏后,电脑重启,之后继续上课 电脑冒烟后,出现了老师的问题,不能上课了,可以先做练习,毕老师将问题抛给校长。此时抛出的问题不再是电脑冒烟,而应该是老师不能上课了 问题抛给校长后,校长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: 电脑冒烟了。。。,无法继续上课 自习或者放假
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有