在写实验一时,需要从文件读入方阵,这时需要对文件中数据的格式出现不规范时抛出异常。
public static boolean isLegalMagicSquare(String FileName) throws IOException
这时便涉及到了JAVA中对异常的处理,由于之前没有Java基础,所以在编写时感到困惑,后来查阅相关资料之后,对JAVA中的异常有了进一步了解并在其指导下完成了实验,并对异常进行简单的记录。
Java中异常包括两个重要的子类:Error和Exception。
Error:这类错误程序无法处理,一般与代码编写者无必然关系,且这类错误较为严重。例如,当代码执行过程中JVM的内存资源耗尽时,会发生此类错误。
Excepton:这类异常可以进行捕捉,与代码编写者的关联较大,在编写代码的过程中经常要使用此类方法,来提示异常。这里简单统计一下这类异常:
算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下标越界异常:ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
输入输出异常:IOException
操作数据库异常:SQLException
以上这些具体的异常均可以依靠try-catch-finally语句进行捕获,通过写这些异常往往可以有效地提高程序的健壮性,在实验一中的一个例子如下(这里只展示了部分代码):
public static boolean isLegalMagicSquare(String FileName) throws IOException{
File file = new File(FileName);
FileReader read = new FileReader(file);
BufferedReader bufread = new BufferedReader(read);
String aline = "";
int m = 0, n = 0;
while( (aline = bufread.readLine()) != null) {
String[] px = aline.split("\t");
n = px.length;
for( int i = 0 ; i < n ; i++ ) {
try {
matrix[m][i] = Integer.valueOf(px[i].trim());
}
catch(NumberFormatException e) {
System.out.print("数据格式错误 ");
return false;
}
当try-catch捕获注某个异常之后,例如从文件读入的数据转化为数字发生错误时会捕获错误并反馈用户,而不是直接粗暴地结束这个程序,这样增加了函数的健壮性,这种策略在写程序时很关键。
总结
异常处理的机制可以提高程序的鲁棒性,同时通过使用try-catch-finally语句可以在捕获进程错误的同时不以暴力的方式结束,而是在输出相关信息的同时提示用户出现的错误,并友好地结束进程。通过正确巧妙地使用其机制可以使得我们地进程更友好地执行。