假如我有这么一个方法
void A()
{
A1();
A2();
A3();
}
其中,A()方法通过点击某按钮触发执行。
在执行过程中,A1()方法出现异常,捕获异常后作出处理,弹出提示消息提醒用户检查输入。
如何让A2和A3都不再继续执行,并返回主窗体。
假如现在已经在A1()方法中加入了处理异常的语句,并且也成功捕获到异常且弹出了提示框。当关闭提示框后,A()方法并没有终止运行,却依旧义无反顾的执行A2和A3 这是怎么回事。
我想让指定的方法完成拿来就用的功能 不想再调用方法里面写处理异常的代码 请问我这个想法应该如何来实现?
追答呵呵 不太明白你的“拿来就用”的意思
如果想在异常发生时跳过A2和A3,直接返回,那么A就必须知道A1中发生了异常,但你又不想在调用方法里写异常处理,那么你可以通过A1的返回值来判定A1中是否发生了异常。
比如A1可以简单声明为
Boolean A1() { /*代码*/ }
那么你只需要在catch中返回false就可以了,而A中相应的改成
A()
{
if(A1())
{
A2();
A3();
}
}
如果有多种异常,只需要扩展一下A1的返回值,比如换成一个枚举值
public enum FailReason
{
Reason1,
Reason2,
// ...
}
嗯 你说的其实我都想到了 也尝试了做一个bool型的标志来记录方法的执行结果
之所以来提问就是想找一个简便的方法 看来是找不到了
看来编程序还是得一点一点的来啊 要有耐心
谢谢你的指点