我目前正在学习如何正确执行自定义异常的过程,偶然发现了一个问题。每当我尝试利用引发此自定义异常的类的对象时,IDE的调试器(我使用的是IntelliJ想法)都会说“未处理的异常:InsertExceptionName()”。代码以简化的方式看起来像这样。在这种情况下,如果随机生成的数字<0.5,它将返回一个异常,否则返回一个数字,但不会这样做。我想念什么?
public class main {
public static void main(String[] args) {
double x=Math.random();
operation op=new operation();
op.execute(x);
}
}
Run Code Online (Sandbox Code Playgroud)
--
public class operation {
public operation() {
}
public double execute(double x) throws RandomWeirdException {
if(x<0.5) {
throw new RandomWeirdException("<0.5");
}
return x;
}
}
Run Code Online (Sandbox Code Playgroud)
--
public class RandomWeirdException extends Exception{
public RandomWeirdException() {
super();
}
public RandomWeirdException(String message) {
super(message);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 JUnit 进行测试,但我很难理解我做错了什么。我做了一些非常简单的事情:
一个应该能够创造一些东西的类。到目前为止,我只是在测试它获取的对象是否为空。
public class TestedClass {
public void create(Object o) {
if (o == null) {
throw new IllegalArgumentException();
} else {
System.out.println("Not null!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
tester 类,它创建一个新的 TestedClass 对象并尝试创建一些带有 null 的东西。它需要一个 IllegalArgumentException。
import org.junit.Test;
public class Tester {
@Test(expected = IllegalArgumentException.class)
public void createWithNullShouldThrowException() {
TestedClass t = new TestedClass();
t.create(null);
}
}
Run Code Online (Sandbox Code Playgroud)
只是主课。
public class Main {
public static void main(String[] args) {
Tester test = new Tester();
test.createWithNullShouldThrowException();
System.out.println("passed all tests!");
}
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,如果在整个测试过程中抛出 …