你可以查一下你的SDK,里面有很多的Exception的定义,其基类其实都是System.Exception一样。 但System.Exception只提供了一些一般异常的处理。更多的需要专业的来处理。 比如找不到文件,你必须捕捉System.IO.FileNotFoundException这个异常。 在一段代码中,你如果既进行了找文件、找路径、找数据库那你很可能抛出四个异常,即System.Exception、System.IO.FileNotFoundException、System.IO.DirectorNotFoundException、System.Data.SqlClicent.SqlException(以上名字纯凭记忆写出,可能有错,自己查一下)。你在程序中需要对此一一捕捉,才能找到正确的错误信息。 当然,如果你坚信自己的代码没有问题,比如你找路径是找的C盘根目录,那么基本上不会有问题,那么你可以不去捕捉这个异常。双比如一般的System.Exception大家也不进行特意捕捉的。 比如你说的,你只捕捉System.Exception, 如下: try{ [openDataBaseCode] } catch(System.Exception e) { MessageBox.show("错误:"+e.Message,"系统错误"); } 如果你的代码中打开数据库确实出错了,那程序是捕捉不到的,所以你必须再加上一个 catch(System.Data.SqlClient.SqlException e) { MessageBox.show("错误:"+e.Message,"数据库错误");
} 另外,我使用的System.Data.OleDb操作数据库的类,所以我不会调用System.Data.Sqlclient.SqlException这个错误。 这样明
|