java异常问题,,大神请看代码有几句不太理解
classLanPingExceptionextendsException{LanPingException(){}LanPingException(Stringmsg)...
class LanPingException extends Exception{
LanPingException(){}
LanPingException(String msg){
super(msg);
}
}
class MaoYanException extends Exception{
MaoYanException(){}
MaoYanException(String msg){
super(msg);
}
}
class NoPlanException extends Exception{
NoPlanException(){}
NoPlanException(String msg){
super(msg);
}
}
class Computer{
private int state = 2;//0 2
public void run() throws LanPingException,MaoYanException{
if(state == 1)
throw new LanPingException("电脑蓝屏啦!");
if(state == 2)
throw new MaoYanException("电脑冒烟啦!");
System. out.println("电脑运行");
}
public void reset(){//重启
state = 0;
System.out.println("电脑重启");
}
}
因为字数的原因我用图片吧,
结果是:
MaoYanException: 电脑冒烟啦!
大家练习
NoPlanException: 课时进度无法完成,原因:电脑冒烟啦!.......
换人
-----------------------------------------------------------------
大家练习是执行到了
test();
//可以对电脑进行维修
throw new NoPlanException("课时进度无法完成,原因:" + e.getMessage());
这里 执行了test()后就不知道步骤了 看不懂throw new NoPlanException("课时进度无法完成,原因:" + e.getMessage()); 这一句 展开
LanPingException(){}
LanPingException(String msg){
super(msg);
}
}
class MaoYanException extends Exception{
MaoYanException(){}
MaoYanException(String msg){
super(msg);
}
}
class NoPlanException extends Exception{
NoPlanException(){}
NoPlanException(String msg){
super(msg);
}
}
class Computer{
private int state = 2;//0 2
public void run() throws LanPingException,MaoYanException{
if(state == 1)
throw new LanPingException("电脑蓝屏啦!");
if(state == 2)
throw new MaoYanException("电脑冒烟啦!");
System. out.println("电脑运行");
}
public void reset(){//重启
state = 0;
System.out.println("电脑重启");
}
}
因为字数的原因我用图片吧,
结果是:
MaoYanException: 电脑冒烟啦!
大家练习
NoPlanException: 课时进度无法完成,原因:电脑冒烟啦!.......
换人
-----------------------------------------------------------------
大家练习是执行到了
test();
//可以对电脑进行维修
throw new NoPlanException("课时进度无法完成,原因:" + e.getMessage());
这里 执行了test()后就不知道步骤了 看不懂throw new NoPlanException("课时进度无法完成,原因:" + e.getMessage()); 这一句 展开
2个回答
展开全部
class NoPlanException extends Exception{ //这是你的自定义异常类
NoPlanException(){}
NoPlanException(String msg){ //实例化对象时传递字符串参数
super(msg); //把你传进来的字符串参数传递给Exception的构造函数里面
一旦抛出后,就会显示你传递的字符串参数
}
}
throw new NoPlanException("课时进度无法完成,原因:" + e.getMessage());
这一句是抛出此异常
NoPlanException(){}
NoPlanException(String msg){ //实例化对象时传递字符串参数
super(msg); //把你传进来的字符串参数传递给Exception的构造函数里面
一旦抛出后,就会显示你传递的字符串参数
}
}
throw new NoPlanException("课时进度无法完成,原因:" + e.getMessage());
这一句是抛出此异常
追问
请问执行了: throw new MaoYanException("电脑冒烟啦!"); 这句后 又做了什么动作呢,
展开全部
throw new NoPlanException("课时进度无法完成,原因:" + e.getMessage());
这个跟你前面的throw new XXXException("xxxx")作用是一样的,后面加上的e.getMessage()是Exception类的方法,返回的就是e的message,也就是你的MaoYanException类的message,也就是你throw new MaoYanException("电脑冒烟啦!");这一行里面写的"电脑冒烟啦!"
这个跟你前面的throw new XXXException("xxxx")作用是一样的,后面加上的e.getMessage()是Exception类的方法,返回的就是e的message,也就是你的MaoYanException类的message,也就是你throw new MaoYanException("电脑冒烟啦!");这一行里面写的"电脑冒烟啦!"
追问
我还是不太理解 不过你可以告诉我流程顺序吗 整个程序的流程用文字走遍 估计我就懂 了 拜托了 大神 ==给你加分
追答
t.prelect(); --->
comp.run();--->
if(state == 2)
throw new MaoYanException("电脑冒烟啦!"); --->
这里因为throw了一个Exception,回到t.prelect();的try catch--->
prelect() catch到了一个MaoYanException --->
print e.toString() 也就是MaoYanException: 电脑冒烟啦!--->
然后到了下一行test();--->
然后到了下一行throw new NoPlanException(xxx),然后这个新的Exception的message就是你括号里面的东西,同时e.getMessage()就是你当前catch到的那个MaoYanException的message --->
然后抛出的异常被上一层方法也就是main里面的try catch捕获到,进入--->
catch{
printxxxxx
}
然后打印出最后两行,程序结束
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询