Java 基本尝试捕获问题
您好,我有一个关于try-and-catch的非常基本的问题,我得到一个错误,说“未报告的异常”。必须被抓住或宣布被抛出。有什么想法吗Java 基本尝试捕获问题,java,try-catch,Java,Try Catch,您好,我有一个关于try-and-catch的非常基本的问题,我得到一个错误,说“未报告的异常”。必须被抓住或宣布被抛出。有什么想法吗 解决了 我认为您需要将其放在方法声明行中 package mp1practice; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.uti
解决了 我认为您需要将其放在方法声明行中
package mp1practice;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Driver
{
ArrayList<String> arraylist = new ArrayList<String>();
public void GrabData() {
try {
BufferedReader br = new BufferedReader(new FileReader("data/Catalog.txt"));
}catch (FileNotFoundException ex) {
Logger.getLogger(Driver.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
首先,try-catch块必须位于方法内部。其次,BufferedReader和FileReader类也为文件权限抛出IOException 因此:
或者,对于代码可能引发的任何其他异常,您可以将throws Exception添加到方法声明中。使用try/catch,您只能捕获您正在尝试的方法中实际引发的异常。因此,如果要捕获的异常未定义为在方法内部引发,则会遇到上述错误。最简单的更改是将代码放在初始化器块中
public void methodName() {
try {
BufferedReader br = new BufferedReader(new FileReader("data/Catalog.txt"));
} catch (FileNotFoundException ex) {
Logger.getLogger(Driver.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException e) {
// do something for IO exception here.
}
}
但更有用的是expicit和设置字段
public class Driver {
private final List<String> arraylist = new ArrayList<String>();
{
try {
BufferedReader br = new BufferedReader(new FileReader("data/Catalog.txt"));
} catch (FileNotFoundException ex) {
Logger.getLogger(Driver.class.getName()).log(Level.SEVERE, null, ex);
}
}
Try-and-catch必须在函数内部,而不是直接在类中。请更新你的代码。它在抱怨哪一个异常,在哪一行,你抓住了吗?@sebi,我把这一行放在一个函数下…解决了,THX@Nidhin_toms您编辑的代码应该可以编译。@assylias没有,但应该可以;除了代码中的FileNotFoundException之外,没有任何东西会抛出IOException。类不能抛出异常。我在编写它之后意识到了这一点。我的意思是用主要的方法或者他需要的任何方法。谢谢你抓住我的错误。
public class Driver {
private final List<String> arraylist = new ArrayList<String>();
{
try {
BufferedReader br = new BufferedReader(new FileReader("data/Catalog.txt"));
} catch (FileNotFoundException ex) {
Logger.getLogger(Driver.class.getName()).log(Level.SEVERE, null, ex);
}
}
public class Driver {
private final List<String> arraylist = new ArrayList<String>();
private final BufferedReader br;
public Driver() throws FileNotFoundException {
br = new BufferedReader(new FileReader("data/Catalog.txt"));
}