当前位置: 技术问答>java相关
各位,线程的run方法不允许抛出异常,那我的调用程序如何得知线程里发生了异常?
来源: 互联网 发布时间:2015-04-15
本文导语: | 做一个监视器(就是唯一实例的东东啦),在发生异常时更改监视器相应状态。调用程序看监视器就知道啦。 // public Monitor{ public boolean myWorkState; private Monitor{}; public synchronized static Monitor getInstance(){ if(insta...
|
做一个监视器(就是唯一实例的东东啦),在发生异常时更改监视器相应状态。调用程序看监视器就知道啦。
//
public Monitor{
public boolean myWorkState;
private Monitor{};
public synchronized static Monitor getInstance(){
if(instance == null){
instance = new Monitor();
}
return instance;
}
}
//需要监视的线程
run{
try{
//your code
}
catch(Throwable the){
Monitor.getInstance().myWorkState=false;
//还可以加上错误信息纪录
}
//调用程序
while(true){
if (!Monitor.getInstance().myWorkState)
/your action
}
}
//实际使用还要,注意Monitor.getInstance().myWorkState的同步问题
//
public Monitor{
public boolean myWorkState;
private Monitor{};
public synchronized static Monitor getInstance(){
if(instance == null){
instance = new Monitor();
}
return instance;
}
}
//需要监视的线程
run{
try{
//your code
}
catch(Throwable the){
Monitor.getInstance().myWorkState=false;
//还可以加上错误信息纪录
}
//调用程序
while(true){
if (!Monitor.getInstance().myWorkState)
/your action
}
}
//实际使用还要,注意Monitor.getInstance().myWorkState的同步问题
|
抛出异常这个方法好像不行,用其他方法吧,比如设标志等
今天早上就遇到相同的问题:)
今天早上就遇到相同的问题:)