WEB开发网
开发学院软件开发Java 技巧:当不能抛出异常时 阅读

技巧:当不能抛出异常时

 2010-05-04 00:00:00 来源:WEB开发网   
核心提示:checked 异常的一个问题是,有时候不允许抛出这样的异常,技巧:当不能抛出异常时,特别是,如果要覆盖超类中声明的方法,所谓标准路径,是指在解析别名、符号链接和 /../ 及 /./ 之后得到的完整绝对路径,或者实现接口中声明的方法,而那个方法没有声明任何 checked 异常

checked 异常的一个问题是,有时候不允许抛出这样的异常。特别是,如果要覆盖超类中声明的方法,或者实现接口中声明的方法,而那个方法没有声明任何 checked 异常,那么新的实现也不能声明 checked 异常。因此必须预先处理异常。另外,可以将异常转换为运行时异常,或者绕过它而不处理它。但是,应该这样做吗,这其中是否隐藏着错误?

问题

只要看一个例子,问题就清楚了。假设有一个 File 对象的 List,需要按它们的标准路径以字典顺序排序。所谓标准路径,是指在解析别名、符号链接和 /../ 及 /./ 之后得到的完整绝对路径。本地方法使用一个比较器,如清单 1 所示:

清单 1. 按标准路径比较两个文件

import java.io.File; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.Comparator; 
 
public class FileComparator implements Comparator<File> { 
 
  public int compare(File f1, File f2) { 
    return f1.getCanonicalPath().compareTo(f2.getCanonicalPath()); 
  } 
 
  public static void main(String[] args) { 
   ArrayList<File> files = new ArrayList<File>();  
   for (String arg : args) { 
     files.add(new File(arg)); 
   } 
   Collections.sort(files, new FileComparator()); 
   for (File f : files) { 
     System.out.println(f); 
   } 
  } 
   
}

1 2 3 4 5 6  下一页

Tags:技巧 不能 异常

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接