首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >退出方法的方法

退出方法的方法
EN

Stack Overflow用户
提问于 2012-11-15 10:14:55
回答 2查看 130关注 0票数 4

有没有办法退出这个方法?我听说有两条出路。

1 :抛出异常。

代码语言:javascript
复制
public void dosomething() {
    if(...) {
        throw new MyException();
    }
             // there might be another process.

}

二:返回。即使是无效方法,我们也可以返回值。

代码语言:javascript
复制
public void dosomething() {
    if(...) {
        return;
    }
             // there might be another process.
}

问题是,还有什么更好的方法吗?

EN

回答 2

Stack Overflow用户

发布于 2012-11-15 10:23:27

您可以使用

代码语言:javascript
复制
Thread.currentThread().stop();

它将终止当前线程而不停止整个JVM。

stop()方法是不推荐的,本质上是不安全的。从规范中:

这种方法本身就不安全。使用Thread.stop停止线程会导致它解锁它锁定的所有监视器(这是未检查的ThreadDeath异常在堆栈上传播的自然结果)。如果以前受这些监视器保护的任何对象处于不一致的状态,则损坏的对象将对其他线程可见,从而可能导致任意行为。

因此,如果您需要退出一个方法,并且不能return或抛出一个exeption,那么让该方法在它自己的线程中运行,并在必要时终止这个线程。注意,这不是一个标准的过程,但更多的是黑客。

票数 1
EN

Stack Overflow用户

发布于 2012-11-15 10:29:12

这也可以考虑吗?

代码语言:javascript
复制
  public void test(){
             System.out.println("Do My work");
             String s = null;
             s.length();
             System.out.println("Do My  other work");

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13395339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档