Java静态方法,带有;抛出IOException“;出错
我有一个类FileLock,用于检查和验证文件,还有一个方法ValidateJava静态方法,带有;抛出IOException“;出错,java,exception,static-methods,ioexception,Java,Exception,Static Methods,Ioexception,我有一个类FileLock,用于检查和验证文件,还有一个方法Validate public class FileLock { public static void Validate(String conf_file) throws IOException{ 我的意图是,每当遇到IOException时,它都应该终止 现在我有了测试类来测试这个 public class Test{ public static void main(String[] args){ Strin
public class FileLock {
public static void Validate(String conf_file) throws IOException{
我的意图是,每当遇到IOException时,它都应该终止
现在我有了测试类来测试这个
public class Test{
public static void main(String[] args){
String conf_file = args[0];
FileLock.Validate(conf_file);
现在,在FileLock.Validate(conf_file)行出现编译时错误,称为Unhandled exception type IOException
代码>
如果我同时添加抛出IOException
和main()
,这个错误就会消失。为什么呢?最好的方法是什么?当一个方法抛出异常时,它希望在抛出异常时处理该异常。您可以使用try-catch块处理异常。在您的情况下,这看起来像:
try {
FileLock.validate(conf_file);
} catch(IOException e) {
//handle exception; e.printStackTrace() will print out error stack trace
}
阅读谢谢@JonSkeet,所以我应该在这里使用try-catch-block。但是,请您解释一下为什么我不能在静态方法中抛出异常?您可以捕获异常,或者声明main
可能抛出相同的异常。这些就是规则。如果你没有从我链接到的页面中得到那么多,我建议你重新阅读它(并在你学习Java的任何书籍中查找“检查的异常”),为什么我不能将错误抛出静态方法?我犯的逻辑错误是什么?你可以在静态方法中抛出错误。错误在于调用该方法时;如果未捕获并处理异常,则存在编译器错误。