当前位置: 技术问答>java相关
菜鸟问题:这个问题出在哪儿?异常如何写比较规范?
来源: 互联网 发布时间:2015-11-15
本文导语: public String ReadFile(){ try{ java.io.FileReader ff=new java.io.FileReader(this.file); java.io.BufferedReader buf=new java.io.BufferedReader(ff); } catch(FileNotFoundException e){System.out.println("file not be founded!n"); ...
public String ReadFile(){
try{
java.io.FileReader ff=new java.io.FileReader(this.file);
java.io.BufferedReader buf=new java.io.BufferedReader(ff);
}
catch(FileNotFoundException e){System.out.println("file not be founded!n");
e.printStackTrace();
}
String inforStr="";
String currentRecord=null;
while(1==1){
try{currentRecord=buf.readLine();}
catch(IOException e){break;}
if(currentRecord==null) break;
else inforStr=inforStr+currentRecord;
}
return inforStr;
}
出错信息:
FileTest2.java:475: cannot resolve symbol
symbol : variable buf
location: class FileTest2
try{currentRecord=buf.readLine();}
^
1 error
问题出在哪里?
还想问一下:象本例,有返回类型,但是可能发生逻辑错误,我们要求程序停止运行,抛出异常,怎样写才算比较合理规范?
我知道运行的异常可不做处理,系统自动会停止程序的运行;
无返回值时,抛出一个异常在方法头部throw一个非运行的异常时就得在后面catch,处理这个异常,觉得还是在方法内部处理异常的好;
有返回值时处理非运行时异常我觉得自己很不规范,一方面要求程序停止往下执行,一方面又要有一个返回值,不能两头兼顾,真掺,哪位好心人帮帮忙,说说你的意见看法,谢了先
try{
java.io.FileReader ff=new java.io.FileReader(this.file);
java.io.BufferedReader buf=new java.io.BufferedReader(ff);
}
catch(FileNotFoundException e){System.out.println("file not be founded!n");
e.printStackTrace();
}
String inforStr="";
String currentRecord=null;
while(1==1){
try{currentRecord=buf.readLine();}
catch(IOException e){break;}
if(currentRecord==null) break;
else inforStr=inforStr+currentRecord;
}
return inforStr;
}
出错信息:
FileTest2.java:475: cannot resolve symbol
symbol : variable buf
location: class FileTest2
try{currentRecord=buf.readLine();}
^
1 error
问题出在哪里?
还想问一下:象本例,有返回类型,但是可能发生逻辑错误,我们要求程序停止运行,抛出异常,怎样写才算比较合理规范?
我知道运行的异常可不做处理,系统自动会停止程序的运行;
无返回值时,抛出一个异常在方法头部throw一个非运行的异常时就得在后面catch,处理这个异常,觉得还是在方法内部处理异常的好;
有返回值时处理非运行时异常我觉得自己很不规范,一方面要求程序停止往下执行,一方面又要有一个返回值,不能两头兼顾,真掺,哪位好心人帮帮忙,说说你的意见看法,谢了先
|
你应该将buf先在TRY之外定义并初始化,部分代码如下更改
public String ReadFile(){
java.io.BufferedReader buf=null;
try{
java.io.FileReader ff=new java.io.FileReader(this.file);
buf=new java.io.BufferedReader(ff);
}
catch(FileNotFoundException e){System.out.println("file not be founded!n");
e.printStackTrace();
}
public String ReadFile(){
java.io.BufferedReader buf=null;
try{
java.io.FileReader ff=new java.io.FileReader(this.file);
buf=new java.io.BufferedReader(ff);
}
catch(FileNotFoundException e){System.out.println("file not be founded!n");
e.printStackTrace();
}