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
,不需要在代码中明确处理。
我想报错并终止 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
,不需要在代码中明确处理。