62,614
社区成员
发帖
与我相关
我的任务
分享
import java.io.*;
public class FindDirectory {
public static void Directory(String dir) throws Exception{
File f = new File(dir);
if(f.isDirectory()){
String[] dirList = f.list();
for(int i=0;i<dirList.length;i++){
Directory(dir+"\\"+dirList[i]);
}
}else{
System.out.println(dir);
}
}
public static void main(String[] args) throws Exception{
Directory("c:");
}
}
以上的代码会一个 NullPointerException
Exception in thread "main" java.lang.NullPointerException
at FindDirectory.Directory(FindDirectory.java:8)
at FindDirectory.Directory(FindDirectory.java:9)
at FindDirectory.main(FindDirectory.java:19)
但我改成以下这样就没会问题了。。。。
import java.io.*;
public class FindDirectory {
public static void Directory(String dir){
try
{
File f = new File(dir);
if(f.isDirectory()){
String[] dirList = f.list();
for(int i=0;i<dirList.length;i++){
Directory(dir+"\\"+dirList[i]);
}
}else{
System.out.println(dir);
}
}
catch(Exception e)
{
System.out.println(e);
}
}
public static void main(String[] args) {
Directory("c:");
}
}
我对异常的理解
我在函数的后面加上 throws Exception
和我自己加上
try
{
}
catch(Execption e)
{
}
不是一样么,只是一个的自己处理,一个是执给JVM处理
~~~~~~~~~
不是一样么,只是一个的自己处理,一个是执给JVM处理