我对java术语不太了解,所以通过示例更容易理解: 我从
实例化一个mymethods类主要课程:
public class Main()
{
public boolean hasErrors = false;
MyMethods m = new MyMethods(); //cannot use try/catch
public static void main(String[] args){
m.writeToFile("text");
}
}
在上面的类中,我不能(我试过)使用try catch来捕获手动抛出的FileNotFoundException,但显然这些方法不能在该位置使用(在try / catch中包装MyMethods m...
)。我找不到我的必要文件时试图抛出该错误
MyMethods:
public class MyMethods()
{
public MyMethods(){
if(!new File("file.txt").canWrite()){
changeSuper(true);
throw new FileNotFoundException();
}
}
public void changeSuper(boolean b) //does not work
{
super.hasErrors = b;
}
//input more methods etc here
}
请注意,这是来自netbeans中的GUI应用程序,但不是此处的重点。如果try / catch包装该行
,程序将无法编译(注意管理员/ mods:这个问题需要屠宰,但我不能更好地表达我的问题)
答案 0 :(得分:0)
您只需要在方法中添加throws关键字,即:
public static void myMethod() throws FileNotFoundException{
// Code goes here ...
if( fileNotFound )
throw new FileNotFoundException("File not found.");
}
然后您可以通过使用try / catch块调用方法来捕获异常:
try {
// Do stuff...
myMethod();
} catch (FileNotFoundException ex){
// Handle error, if thrown...
}