JAVA使用try-catch语句来处理异常.
将有可能出现的异常操作放在try-catch的try部分,一旦try部分抛出异常对象,或调用某个可能抛出异常对象的方法,并且该方法抛出了异常对象,那么try立即结束执行,转向catch部分.所以程序将发生异常后的处理放在catah部分.
内存溢出不是异常,是Error,可以把Error当做不可以捕捉的Exception(ThreadDeath除外),Error是程序无法处理的错误,一般由JVM处理,比如杀死该线程,不要试图捕捉Error.
一旦出现内存溢出错误,整个JVM就崩溃了,所以呢不存在捕获的可能性.
Java中的异常处理机制已经比较成熟,我们的Java程序到处充满了异常的可能,如果对这些异常不做预先的处理,那么将来程序崩溃就无从调试,很难找到异常所在的位置.
河北电脑培训将探讨一下Java中异常与错误的处理方法,一起来看看.
异常与错误:异常:在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员)已经犯了个错误,现在有一个机会来修改它.
Java中使用异常类来表示异常,不同的异常类代表了不同的异常.
但是在Java中所有的异常都有一个基类,叫做Exception.
错误:它指的是一个合理的应用程序不能截获的严重的问题.
大多数都是反常的情况.
错误是VM的一个故障(虽然它可以是任何系统级的服务).
所以,错误是很难处理的,一般的开发人员(当然不是你)是无法处理这些错误的,比如内存溢出.
和异常一样,在Java中用错误类来表示错误,不同的错误类代表了不同的错误.
但是在Java中所有的错误都有一个基类,叫做Error.
综上,我们可以知道异常和错误最本质的区别就是异常能被开发人员处理而错误时系统本来自带的,一般无法处理也不需要我们程序员来处理.
ErrorExceptionruntimeException几个子类1、java.lang.ArrayIndexOutOfBoundsException数组索引越界异常.
当对数组的索引值为负数或大于等于数组大小时抛出.
譬如:整数除零等.
当应用试图在要求使用对象的地方使用了null时,抛出该异常.
当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常.
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口.
在Java中,每个异常都是一个对象,它是Throwable类或其子类的实例.当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并可以对其进行处理.
catch子句紧跟在try块后面,用来指定你想要捕获的异常的类型;
throw语句用来明确地抛出一个异常;
throws用来声明一个方法可能抛出的各种异常(当然声明异常时允许无病呻吟);
finally为确保一段代码不管发生什么异常状况都要被执行.
Java是一门面向对象编程语言,不仅吸收了C◆◆语言的各种优点,还摒弃了C◆◆里难以理解的多继承、指针等概念,所以呢Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程
异常处理是Java开发中的一个重要部分.它是关乎每个应用的一个非功能性需求,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等.Java提供了几个异常处理特性,以try,catch和finally关键字的形式内建于语言自身之中.Java编程语言也允许你创建新的异常,并通过使用throw和throws关键字抛出它们.事实上,在Java编程中,Java的异常处理不单单是知道语法这么简单,它必须遵循标准的JDK库,和几个处理错误和异常的开源代码.这里北大青鸟将讨论一些关于异常处理的Java最佳实践.
①.、为可恢复的错误使用检查型异常,为编程错误使用非检查型错误.
选择检查型还是非检查型异常,对于Java编程人员来说,总是让人感到困惑.检查型异常保证你对错误条件提供异常处理代码,这是一种从语言到强制你编写健壮的代码的一种方式,但同时会引入大量杂乱的代码并导致其不可读.当然,如果你有替代品和恢复策略的话,捕捉异常并做些什么看起来似乎也在理.在Java编程中选择检查型异常还是运行时异常.
很多时候,当一个由另一个异常导致的异常被抛出的时候,Java库和开放源代码会将一种异常包装成另一种异常.日志记录和打印根异常就变得非常重要.Java异常类提供了getCause方法来检索导致异常的原因,这些(原因)可以对异常的根层次的原因提供更多的信息.该Java实践对在进行调试或排除故障大有帮助.时刻记住,如果你将一个异常包装成另一种异常时,构造一个新异常要传递源异常.
异常信息是最重要的地方,因为这是程序员首先看到的第一个地方,这里你能找到问题产生的根本原因.这里始终提供精确的真实的信息.
需要记住的一件事是异常代价高昂,同时让你的代码运行缓慢.假如你有方法从ResultSet(结果集)中进行读取,这时常会抛出SQLException异常而不会移到下一元素,这将会比不抛出异常的正常代码执行的慢的多.所以呢最大限度的减少不必要的异常捕捉和移动,那里没有什么固定的原因.不要仅仅是抛出和捕捉异常,如果你能使用boolean变量去表示执行结果,可能会得到更整洁,更高性能的解决方案.修正错误的根源,避免不必须要的异常捕捉.
以上就是土嘎嘎小编为大家整理的java异常程序处理代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!