异常捕获是用于在程序运行时发现异常,并且抛出相应的异常信息。 异常处理可以隐藏程序真正的错误细节,而将友好的信息提供给用户,或者给用户一个向导。
但异常捕获可能带来一个问题,如果catch中的语句有语法问题,比如说使用了不合法的名称。有可能调试时检查不出来,而运行程序的时候,只抛出一个一般性的错误信息。这不利于程序的排错。
笔者就犯了一个这样的错误:做一个测试编程的时候,随便给一个数据库表取了个名table。在其它语句都没有错误的情况下,却总是抛出异常。而把catch块中的语句全部删除的时候,程序正常运行,只是没有想要的结果。后来,将Catch块中的语句移到catch之前,调试时就发现了问题。进而联想到是数据库表名使用了关键字,从而导致错误。修改表名后问题解决。
换言之,如果程序抛出异常,要考虑到catch块可能隐藏了真正的错误。