如题所述
在Java中,Exception的用法体现在自定义异常类型和处理异常分支上。如在类的testloadUser方法中,我们创建了一个UserManager类,这个类的loadUser方法尝试从数据库中加载用户。如果用户不存在,会抛出UserNotFoundException。这是一种受控异常,用于明确指示特定的错误情况。
UserManager类中的loadUser方法通过PreparedStatement执行SQL查询,如果查询结果不满足条件,会抛出UserNotFoundException。这种方法确保了异常的明确性,提高了代码的可读性和可维护性。然而,当一个方法中过多使用受控异常时,可能会导致调用者处的try/catch语句过多,甚至形成嵌套,影响代码简洁性。
关于Exception在Java中的模型,一些开发者如Rod Johnson倾向于使用运行时异常,认为受控异常的作用有限。而Bruce Eckel则更极端,主张完全弃用受控异常。这种观点变化源于他们在实践中遇到的问题和对Exception理解的深化。在实践中,可能需要根据项目需求和复杂性来权衡是否使用受控异常。
Exception的缺点包括:过多的受控异常可能导致代码中try/catch块过多,降低代码的可读性;某些异常如数据库SQLException,其错误信息通常不具体,处理起来意义不大;在大型系统中,过多的异常处理类可能导致系统复杂性增加。对于更深入的Exception机制理解,推荐阅读《Thinking in Java》第三版和Rod Johnson的专家系列书籍。
扩展资料
Java Exception 异常处理机制其实起源很早,所以他也不是个什么新鲜的东西,如果您对Exception机制一点都不了解,没关系,只是国内通常接触新事务的时间都相对的要晚老美几年,但了解Java Exception机制对Java开发人员来说是必要的,不过Exception 异常处理机制也并没有固定,在Anders 的眼里他也是一个试验性的东西。 理论上异常处理划分为两个模型(中止模型与继续模型),但实际使用方面我们对中止模型用的比较多,这个模型比较实用,而继续模型则不是那么的应用普遍,多少是耦合的过于紧密。