移动学习网 导航

北大青鸟设计培训:异常处理的Java最佳方法?

2024-06-02m.verywind.com
~

异常处理是Java开发中的一个重要部分。
它是关乎每个应用的一个非功能性需求,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等。
Java提供了几个异常处理特性,以try,catch和finally关键字的形式内建于语言自身之中。
Java编程语言也允许你创建新的异常,并通过使用throw和throws关键字抛出它们。
事实上,在Java编程中,Java的异常处理不单单是知道语法这么简单,它必须遵循标准的JDK库,和几个处理错误和异常的开源代码。
这里北大青鸟http://www.kmbdqn.cn/将讨论一些关于异常处理的Java最佳实践。
1、为可恢复的错误使用检查型异常,为编程错误使用非检查型错误。
选择检查型还是非检查型异常,对于Java编程人员来说,总是让人感到困惑。
检查型异常保证你对错误条件提供异常处理代码,这是一种从语言到强制你编写健壮的代码的一种方式,但同时会引入大量杂乱的代码并导致其不可读。
当然,如果你有替代品和恢复策略的话,捕捉异常并做些什么看起来似乎也在理。
在Java编程中选择检查型异常还是运行时异常。
2、在finally程序块中关闭或者释放资源这在Java编程中,是一个广为人知的最佳实践,在处理网络和IO类的时候,相当于一个标准。
在finally块中关闭资源,在正常和异常执行的情况下,保证之前和稀缺资源的合理释放,这由finally块保证。
从Java7开始,该语言有了一项更有趣的功能:资源管理自动化或者ARM块能实现这一功能。
尽管如此,我们仍然要记住在finally块中关闭资源,这是对于释放像FileDescriptors这类,应用在socket和文件编程的情况下的有限资源很重要的。
3、在堆栈跟踪中包含引起异常的原因很多时候,当一个由另一个异常导致的异常被抛出的时候,Java库和开放源代码会将一种异常包装成另一种异常。
日志记录和打印根异常就变得非常重要。
Java异常类提供了getCause方法来检索导致异常的原因,这些(原因)可以对异常的根层次的原因提供更多的信息。
该Java实践对在进行调试或排除故障大有帮助。
时刻记住,如果你将一个异常包装成另一种异常时,构造一个新异常要传递源异常。
4、始终提供关于异常的有意义的完整的信息异常信息是最重要的地方,因为这是程序员首先看到的第一个地方,这里你能找到问题产生的根本原因。
这里始终提供精确的真实的信息。
5、避免过度使用检查型异常检查型异常在强制执行方面有一定的优势,但同时它也破坏了代码,通过掩盖业务逻辑使代码可读性降低。
只要你不过度使用检查型异常,你可以最大限度的减少这类情况,这样做的结果是你会得到更清洁的代码。
你同样可以使用Java7的新功能,以移除重复项。
6、将检查型异常转为运行时异常这是在像Spring之类的多数框架中用来限制使用检查型异常的技术之一,大部分出自于JDBC的检查型异常,都被包装进DataAccessException中,而(DataAccessException)异常是一种非检查型异常。
这是Java最佳实践带来的好处,特定的异常限制到特定的模块,像SQLException放到DAO层,将意思明确的运行时异常抛到客户层。
7、记住对性能而言,异常代价高昂需要记住的一件事是异常代价高昂,同时让你的代码运行缓慢。
假如你有方法从ResultSet(结果集)中进行读取,这时常会抛出SQLException异常而不会移到下一元素,这将会比不抛出异常的正常代码执行的慢的多。
因此最大限度的减少不必要的异常捕捉和移动,那里没有什么固定的原因。
不要仅仅是抛出和捕捉异常,如果你能使用boolean变量去表示执行结果,可能会得到更整洁,更高性能的解决方案。
修正错误的根源,避免不必须要的异常捕捉。



  • 北大青鸟java培训:在Java程序中处理数据库超时与死锁?
  • 答:湖北电脑培训http://www.kmbdqn.cn/发现一条SQL语句当使用了下列命令之一时,就应该考虑只读模式了

  • 北大青鸟设计培训:零基础学习Java编程需要知道什么?
  • 答:四、JDK核心API语言核心包、异常处理、常用工具包、集合框架熟练掌握JDK核心API编程技术;理解API设计原则;具备熟练的阅读API文档的能力;JavaSE核心异常处理、多线程基础、IO系统、网络编程、Swing组件、JVM性能调优(JVM内存结构剖析、GC分析及调优、JVM内存参数优化)、Java泛型、JDK新特性。熟练掌握JavaSE...

  • 北大青鸟设计培训:学习Java的步骤有哪些?
  • 答:2.第一步是安装好JDK,写一个HelloWorld。第二步是学习Java的语法,要搞清楚的关键字(public,protected,private,static)等等的用法。第三步是学习Java的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。第四步就是开始熟悉Java的类库。3...

  • 北大青鸟设计培训:Java程序语言有哪些技术优势呢?
  • 答:3.分布性Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其他对象。4.鲁棒性Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。Java在使用时,通过集成的面向对象的异常处理机制,Java提示出可能出现但未被处理的异常,帮助程...

  • 北大青鸟设计培训:如何零基础学习Java软件开发?
  • 答:一、掌握基础入门知识北大青鸟致力于构建完善的基础课程体系,除了基础语法,核心类库,面向对象编程,异常,集合,IO流,还添加了网络编程,线程,反射等企业热点应用,此外还整合了JDK1.8的新功能,让学生在基础阶段可以成为行业的佼佼者。二、学习热门企业框架为了了解HTML5和CSS3的新特性,我们还将学习...

  • 北大青鸟设计培训:Java开发服务器的线程怎么处理?
  • 答:下面运城北大青鸟为大家介绍关键服务器线程处理的简单知识。1、BIO线程模型在JDK1.4中引入JavaNIO之前,所有基于Java的Socket通信都使用了同步阻塞模式(BIO)。这种请求-响应通信模型简化了上层的应用程序开发上,但在具有性能和可靠性的情况下,存在一个巨大的瓶颈。在一段时间里面,大型应用程序服务器主要...

  • 北大青鸟java培训:Android开发需要学习哪些内容?
  • 答:抽象类和接口在多态中的应用、多态带来的好处。5、Java异常处理,异常的机制原理。6、常用的设计模式:Singleton、Template、Strategy模式。7、JavaAPI介绍:种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。8、Java集合介绍:Collection、Set、List、ArrayList、Vector、...

  • 北大青鸟设计培训:如何突破java编程的局限性?
  • 答:ScalaScala的设计初衷,就是在JVM上整合面向对象与函数式编程的各种特性。大名鼎鼎的大数据处理框架Spark、消息中间件Kafka、用于构建可容错,可扩展、高并发应用的Akka,都是基于Scala语言编写。Kotlin前几日刚升级为Android官方开发语言的Kotlin,近期是一个热门。从前面讲到的Github上的star指数也可窥见一斑...

  • 北大青鸟设计培训:java服务器应用开发框架?
  • 答:Nimbus还支持其他的操作:WebSocketFunction:用于处理websocket请求;DocumentStoreFunction:用于执行因文档存储变更而触发的代码;KeyValueStoreFunction:用于执行因键值存储变更而触发的代码;NotificationFunction:用于执行由通知触发的代码;QueueFunction:用于执行因队列变化而触发的代码;BasicFunction:用于执行不需要...

  • 北大青鸟设计培训:从事Java开发的注意事项?
  • 答:1、将一些需要变动的配置写在属性文件中若没有把一些需要并发执行时使用的线程数设置成可在属性文件中配置。那么你的程序无论在DEV环境中,还是TEST环境中,都可以顺畅无阻地运行,但是一旦部署在PROD上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,也许是线上环境并发造成,也许是其他。

    户户网菜鸟学习
    联系邮箱
    返回顶部
    移动学习网