小编rob*_*erd的帖子

Java线程:在start()之后调用Thread对象上的run()方法

我看到有趣的行为.我正在运行此代码

public class ThreadsTest {

    public static void main(String[] args) {
        Runnable mr = new MyRunnable();
        Thread t1 = new Thread(mr);
        Thread t2 = new Thread(mr);
        t1.setName("first");
        t2.setName("second");
        t1.start();
        t2.start();
        t1.run();
    } 
} 

class MyRunnable implements Runnable {
    public void run() {
    for (int i=0; i < 2; i++) {
        System.out.println("Running: " + Thread.currentThread().getName());
    }
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

Running: first
Running: first
Running: second
Running: second
Run Code Online (Sandbox Code Playgroud)

我期待看到类似的东西:

Running: first
Running: first
Running: second
Running: second
Running: main
Running: main
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么我没有看到 …

java

1
推荐指数
1
解决办法
2272
查看次数

记录由未知参数引起的异常的最佳实践

这更像是一个最佳实践问题.我希望在这里提出这个问题是可以的.我正在创建一个将用作API的一部分的接口.我有一个方法getSomeObject(),在幕后有一个计算逻辑并返回SomeObject.我在后台调用抛出的方法IllegalArgumentException,因此我的getSomeObject()方法可能会抛出此异常.我遇到的问题是API的用户不熟悉API的内部工作方式,也不理解抛出异常的原因.由于参数是在我的方法中创建的,并且用户甚至不知道该参数存在.我试图记录它,但这种异常的原因会使API的用户感到困惑.所以我的问题是,这样的情况最好的方法是什么?记录此异常的正确方法是什么?

java javadoc

1
推荐指数
1
解决办法
92
查看次数

标签 统计

java ×2

javadoc ×1