有没有办法退出这个方法?我听说有两条出路。
1 :抛出异常。
public void dosomething() {
if(...) {
throw new MyException();
}
// there might be another process.
}二:返回。即使是无效方法,我们也可以返回值。
public void dosomething() {
if(...) {
return;
}
// there might be another process.
}问题是,还有什么更好的方法吗?
发布于 2012-11-15 10:23:27
您可以使用
Thread.currentThread().stop();它将终止当前线程而不停止整个JVM。
但
stop()方法是不推荐的,本质上是不安全的。从规范中:
这种方法本身就不安全。使用Thread.stop停止线程会导致它解锁它锁定的所有监视器(这是未检查的ThreadDeath异常在堆栈上传播的自然结果)。如果以前受这些监视器保护的任何对象处于不一致的状态,则损坏的对象将对其他线程可见,从而可能导致任意行为。
因此,如果您需要退出一个方法,并且不能return或抛出一个exeption,那么让该方法在它自己的线程中运行,并在必要时终止这个线程。注意,这不是一个标准的过程,但更多的是黑客。
发布于 2012-11-15 10:29:12
这也可以考虑吗?
public void test(){
System.out.println("Do My work");
String s = null;
s.length();
System.out.println("Do My other work");
}https://stackoverflow.com/questions/13395339
复制相似问题