下面是我的代码,我从输出文件中获取特定行。它给了我上面的错误。有些人可以帮助我,因为我刚接触到这一点。
private final static String ThirdDeviceName=iPhone();
public static String iPhone() throws IOException {
BufferedReader br = new BufferedReader(new FileReader("output.txt"));
String str;
int start = 0;
int end = 0;
int count = 0;
while((str = br.readLine())!= null)
{
StringTokenizer st = new StringTokenizer(str," ");
count++;
System.out.println(st.nextToken());
}
br.close();
return str;
}
答案 0 :(得分:1)
简短回答:您的方法抛出IOException,但您无法在任何地方捕获它。所以它没有处理。如果抛出异常,则不能将该方法用于常量。
使用try-catch块而不是在方法中重新抛出异常,或者使用您在可以执行try-catch块的方法中设置的非final属性。
答案 1 :(得分:1)
将静态字段分配给静态字段时,仍需要处理异常。 一种方法是:
private final static String ThirdDeviceName;
static {
try {
ThirdDeviceName=iPhone();
} catch (IOException e){
throw new RuntimeException(e);
}
}
但是在iPhone()
方法中处理异常是一种更好的方法。