为何我把main()函数里的System.err.println("xxxx");换成自定义的fail("xxxx");就出错了呢??
public class Delete {
public static void main(String[] args){
if(args.length!=1){
System.err.println("Usage: java Delete <file or directory>");
System.exit(0);
}
try{
delete(args[0]);
}catch(IllegalArgumentException e){
System.err.println(e.getMessage());
}
}
public static int delete(String filename){
File file = new File(filename);
if(!file.exists()){
fail("Delete: no such file or directory:"+filename);
return 0;
}
if(!file.canWrite()){
fail("Delete:Write protected:"+filename);
return 0;
}
if(file.isDirectory()){
String[] files = file.list();
if(files.length>0){
fail("Delete:directory not empty:"+filename);
return 0;
}
}
boolean success = file.delete();
if(!success){
fail("Delete:deletion failed");
return 0;
}
return 1;
}
protected static void fail(String msg)
throws IllegalArgumentException{
throw new IllegalArgumentException(msg);
}
}
为何我把main()函数里的System.err.println("Usage: java Delete <file or directory>");换成自定义的fail("xxxx");就出错了呢??