Java 在 Python 中引发错误的模拟

Java Analog for Raising Error in Python

我想报错并终止 Java 程序,但我不知道该怎么做,因为它似乎与我在 Python 中的做法根本不同.

在Python中我会写:

import sys

if len(sys.argv) != 2:
    raise IOError("Please check that there are two command line arguments")

这会生成:

Traceback (most recent call last):
  File "<pyshell#26>", line 2, in <module>
     raise OSError("Please check that there are two command line arguments")
OSError: Please check that there are two command line arguments

这就是我想要的,因为我不想捕捉错误。

在Java中,我尝试做类似的事情:

public class Example {

    public static void main (String[] args){
        int argLength = args.length;
        if (argLength != 2) {
            throw IOException("Please check that there are two command line arguments");
        }
    }
}

但是 NetBeans 告诉我它 "cannot find symbol" IOException

我找到了这些抛出异常的答案:

Java unreported exception

How to throw again IOException in java?

但他们都建议定义全新的类。这是必要的吗?即使 IOException 属于 Throwable 类?

我对 Python 和 Java 之间的区别的根本误解阻碍了我。我如何基本上实现我的 python 示例所取得的成就? Java 中出现的那个错误最接近的复制是什么?

谢谢

IOException属于java.io包,你应该先导入它。这也是一个 "checked" 异常,这意味着您应该修改 main 方法,添加 throws IOException,或者在方法主体中捕获它。

import java.io.IOException;

public class Example {
    public static void main(String [] args) throws IOException {
        ...
        throw new IOException("Please check that...");
    }
}

我同意@pbabcdefp 的观点,你应该使用 IllegalArgumentException,这是一个 RuntimeException,不需要在代码中明确处理。