`
jaesonchen
  • 浏览: 312990 次
  • 来自: ...
社区版块
存档分类
最新评论

java异常编程

 
阅读更多

 * 只针对异常的情况才使用异常:异常应该只用于异常的情况下,它永远不应该用于正常的控制流。
   如果类具有“状态相关”的方法,即只有在特定的条件下才能被调用的方法,这个类往往也应该有个单独

   的状态测试方法。如Iterator的hasNext()和next()。

*********************************************************************
 * 对可恢复的情况使用受检异常,对编程错误使用运行时异常:
   如果期望调用者能够适当地恢复,对于这种情况应该使用受检异常。通过抛出受检异常,强迫调用者在

   try catch子句中处理该异常或者将它传播出去。
   如果程序抛出未受检的异常或者错误,往往属于不可回复的情景,如果没有捕捉到这样的异常,将导致

   当前线程终止,并出现适当的错误信息。
   Error往往被JVM保留用于表示资源不足、约束失败或者其他程序无法继续执行的条件,最好不要再实现

   任何新的Error子类。


*********************************************************************
 * 优先使用标准的异常:
   最经常被重用的异常:非法参数IllegalArgumentException、非法状态IllegalStateException。
   不允许null的参数中传递了null使用NullPointerException,表示序列下标的参数中传递了越界的值使用

   IndexOutOfBoundsException,不支持或需要被覆盖的操作使用UnsupportedOperationException

*********************************************************************
 * 抛出与抽象相对应的异常:
   更高层的实现应该捕获底层的异常,同时抛出可以按照高层抽象进行解释的异常。这种行为称为异常转译

   (Exception translation)。


*********************************************************************
 * 努力使失败保持原子性:
    一般而言,失败的方法调用应该使对象保持在被调用之前的状态。具有这种属性的方法称为具有失败

    原子性。
 * 实现失败原子性的途径:
   (1)最简单的办法是设计一个不可变对象。
   (2)对于可变对象上执行操作的方法,最常见的做法是,在执行操作之前检查参数的有效性。这可以使

       对象被修改之前先抛出适当的异常。
       类似的方法是,调整计算处理过程的顺序,使得任何可能会失败的计算部分都在状态被修改之前发生。
   (3)第三种做法是编写一段恢复代码由它来拦截操作中发生的失败,以及使对象回滚到操作开始之前的

       状态上,通常用于永久性的数据结构(基于磁盘的数据结构)。
   (4)第四种做法是在对象的临时拷贝上进行操作,当操作完成之后再用临时拷贝中的结果替换对象的内容。

分享到:
评论

相关推荐

    java异常编程实例.rar_java异常_site:www.pudn.com

    Java异常编程是Java语言中一个至关重要的部分,它关乎程序的稳定性和健壮性。异常是程序运行时发生的错误,可以被程序捕获并进行适当的处理,而不是导致程序崩溃。在Java中,异常处理机制是通过try-catch-finally...

    java异常处理习题

    Java 异常处理是 Java 编程语言中的一种重要机制,用于处理程序在运行时可能出现的错误或异常情况。下面是关于 Java 异常处理的习题和知识点总结: 一、Java 异常处理关键字 * Java 中用来抛出异常的关键字是 `...

    Java网络编程案例教程习题参考答案 .pdf

    包括Socket编程、TCP/IP协议、Java Socket类、ServerSocket类、Java网络编程模型、网络编程常见问题、多线程编程、并发编程、Socket选项、网络安全、数据传输、网络协议、Socket超时、网络异常处理等。

    Java网络编程/Java网络编程实例

    9. **异常处理**:网络编程中常见的异常有IOException、SocketException等,良好的异常处理机制可以确保程序的健壮性。 10. **网络调试工具**:如telnet、curl和Wireshark等,可以帮助开发者测试和调试网络应用。 ...

    Java网络编程实验报告.pdf

    "Java网络编程实验报告" 本实验报告主要介绍了Java网络编程的基本概念和实现方法,通过设计和实现一个简单的客户端/服务器应用程序,了解Java网络编程的基本原理和实现方法。 知识点1:Java 网络编程基础 Java ...

    java网络编程第四版pdf

    这些内容详细阐述了如何利用Java进行网络通信,包括建立连接、发送和接收数据、处理异常以及优化网络性能。 总的来说,《Java网络编程(第四版)》是一本全面而实用的教程,适合有一定Java基础的开发者学习。它不仅...

    Java经典编程50道

    2. Class48.java:可能涵盖异常处理,如使用`try-catch-finally`语句块捕获并处理异常,理解不同类型的异常类以及如何自定义异常。 3. Class33.java:可能涉及到面向对象编程,包括封装、继承和多态,如定义类、...

    java 并发编程的艺术pdf清晰完整版 源码

    7. **并发异常处理**:在并发编程中,正确处理异常是非常重要的,书中会讲解如何在多线程环境中优雅地处理异常。 8. **JVM内存模型与并发**:JVM内存模型对并发编程有直接影响,书中会阐述Java内存模型(JMM)的...

    Java核心编程技术源码

    Java语法基础:类、抽象类、接口、内部类、匿名类、异常、编码规范。Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。Java图形编程:AWT(Java2D、JavaSound、Media)、Swing、SWT、Jface。...

    java编程中异常处理的优劣观

    在实际编程中,理解并合理运用Java异常处理机制至关重要。正确地捕获和处理异常可以帮助我们编写出更加健壮的程序,同时避免因滥用异常而导致的反模式。对于性能敏感的代码,应尽量减少异常的使用,避免无谓的性能...

    java编程200例(附:JAVA文档完全解读中文版)

    Java编程语言是面向对象的、跨平台的编程语言,由Sun Microsystems公司于1995年推出,目前广泛应用于各种领域,如Web开发、移动应用、企业级应用、大数据处理等。"Java编程200例(附:JAVA文档完全解读中文版)"是一...

    《Java网络编程实例:Java网络编程实例》

    Java网络编程是开发分布式应用程序的关键技术,它使得Java程序能够与其他设备、系统和服务进行通信。本书《Java网络编程实例:Java网络编程实例》显然聚焦于通过实际案例来教授这一核心技能。以下是一些主要的知识点...

    Java网络编程第三版.pdf

    9. **错误处理与调试**:学习如何处理网络编程中常见的异常,以及如何调试网络应用程序,提高代码的健壮性。 10. **最新技术**:第三版可能会涵盖Java的新特性和更新,例如Java 8及更高版本中的新功能,以及对Java...

    JAVA编程题全集(100题及答案)——直接打印

    8. JAVA 异常处理:资源中没有提到 JAVA 异常处理的知识点,但是在实际开发中,异常处理是非常重要的,所以开发者需要学习和掌握 JAVA 异常处理的知识点。 本资源提供了一个完整的 JAVA 编程题全集,涵盖了大量的...

    Java SE编程入门教程 java序列化(共14页).pptx

    Java SE编程入门教程 java异常(共57页).pptx Java SE编程入门教程 java正则(共8页).pptx Java SE编程入门教程 properties(共3页).pptx Java SE编程入门教程 String字符串(共27页).pptx Java 位运算.docx ...

    Java完美编程(第3版)

    《Java完美编程(第3版)》是一本深入讲解Java编程技术的专业书籍,旨在帮助读者掌握Java编程的核心概念和最佳实践。此书共分为20个教程,涵盖了从基础到高级的广泛主题,旨在构建一个全面且深入的Java知识体系。 ...

    Java编程异常简单代码示例

    Java编程异常简单代码示例主要介绍了Java编程异常简单代码示例,涉及到Java编程异常处理的基本概念和实践操作。本文通过两个实践练习,展示了Java编程异常处理的基本方法和技术。 异常处理的基本概念 在Java编程中...

    Java高级编程实用教程

    本教程将涵盖多个关键领域,包括多线程、网络编程、I/O流、反射、异常处理、集合框架、垃圾回收机制、设计模式以及Java的高级特性。 首先,多线程是Java中的一个核心概念,它允许程序同时执行多个任务,提高程序...

Global site tag (gtag.js) - Google Analytics