精华内容
下载资源
问答
  • error和exception区别

    2017-07-23 09:18:57
    Error和Exception的联系继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自ExceptionError和RuntimeException及其子类称为未检查异常...Error和Exception区别Error类一般是指与虚拟机

    Error和Exception的联系

    继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception。
    
    Error和RuntimeException及其子类称为未检查异常(Unchecked exception),其它异常成为受检查异常(Checked Exception)。
    

    Error和Exception的区别

    Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢出等。如Java.lang.StackOverFlowError和Java.lang.OutOfMemoryError。对于这类错误,Java编译器不去检查他们。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和预防,遇到这样的错误,建议让程序终止。
    
    Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。
    

    运行时异常和受检查的异常

    Exception又分为运行时异常(Runtime Exception)和受检查的异常(Checked Exception )。

    RuntimeException:其特点是Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try……catch捕获,也没有用throws抛出,还是会编译通过,如除数为零的ArithmeticException、错误的类型转换、数组越界访问和试图访问空指针等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。
    
    受检查的异常(IOException等):这类异常如果没有try……catch也没有throws抛出,编译是通不过的。这类异常一般是外部错误,例如文件找不到、试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
    
    展开全文
  • Java中error和Exception区别

    千次阅读 2018-11-25 20:14:46
    Java中error和Exception区别

    1、error—错误 :
    是指程序无法处理的错误,表示应用程序运行时出现的重大错误。
    例如jvm运行时出现的OutOfMemoryError以及Socket编程时出现的端口占用等程序无法处理的错误

    2、Exception — 异常 :异常可分为运行时异常跟编译异常
    1.运行时异常:即RuntimeException及其之类的异常。这类异常在代码编写的时候不会被编译器所检测出来,是可以不需要被捕获,但是程序员也可以根据需要进行捕获抛出。常见的RUNtimeException有:NullpointException(空指针异常),ClassCastException(类型转换异常),IndexOutOfBoundsException(数组越界异常)等。
    2)编译异常:RuntimeException以外的异常。这类异常在编译时编译器会提示需要捕获,如果不进行捕获则编译错误。常见编译异常有:IOException(流传输异常),SQLException(数据库操作异常)等。
    3、java处理异常的机制:抛出异常以及捕获异常 ,一个方法所能捕捉的异常,一定是Java代码在某处所抛出的异常。简单地说,异常总是先被抛出,后被捕捉的

    如下图:
    在这里插入图片描述

    4、最后再说下throw跟throws的区别:

    public void test() throws Exception {
    	    throw new Exception();
    	}
    

    throws表示一个方法声明可能抛出一个异常,throw表示此处抛出一个已定义的异常

    展开全文
  • Java异常又可以分为不受检查异常(Unchecked Exception检查异常(Checked Exception)。 下面将详细讲述这些异常之间的区别与联系: ErrorError类对象由 Java  虚拟机生成并抛出,大多数错误与代码...

    è¿éåå¾çæè¿°
    异常发生的原因有很多,通常包含以下几大类:

    用户输入了非法数据。
    要打开的文件不存在。
    网络通信时连接中断,或者JVM内存溢出。
    这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。-

    要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:

    检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
    运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
    错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。 
    从图中可以看出所有异常类型都是内置类Throwable的子类,因而Throwable在异常类的层次结构的顶层。
    接下来Throwable分成了两个不同的分支,一个分支是Error,它表示不希望被程序捕获或者是程序无法处理的错误。另一个分支是Exception,它表示用户程序可能捕捉的异常情况或者说是程序可以处理的异常。其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常。

    Java异常又可以分为不受检查异常(Unchecked Exception)和检查异常(Checked Exception)。

    下面将详细讲述这些异常之间的区别与联系:

    Error:Error类对象由 Java 
    虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。例如,Java虚拟机运行错误(Virtual 
    MachineError),当JVM不再有继续执行操作所需的内存资源时,将出现 
    OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止;还有发生在虚拟机试图执行应用时,如类定义错误(NoClassDefFoundError)、链接错误(LinkageError)。这些错误是不可查的,因为它们在应用程序的控制和处理能力之 
    外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。在Java中,错误通常是使用Error的子类描述。
    Exception:在Exception分支中有一个重要的子类RuntimeException(运行时异常),该类型的异常自动为你所编写的程序定义ArrayIndexOutOfBoundsException(数组下标越界)、NullPointerException(空指针异常)、ArithmeticException(算术异常)、MissingResourceException(丢失资源)、ClassNotFoundException(找不到类)等异常,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生;而RuntimeException之外的异常我们统称为非运行时异常,类型上属于Exception类及其子类,从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。

    è¿éåå¾çæè¿° 

    1、try{} 里有一个 return 语句,那么紧跟在这个 try 后的 finally{} 里的 code 会不会被执行,什么时候被执行,在 return 前还是后?
    答案:会执行,在方法返回调用者前执行。 
    2、Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?

    答:Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并可以对其进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果系统会抛出(throw)一个异常对象,可以通过它的类型来捕获(catch)它,或通过总是执行代码块(finally)来处理;try用来指定一块预防所有异常的程序;catch子句紧跟在try块后面,用来指定你想要捕获的异常的类型;throw语句用来明确地抛出一个异常;throws用来声明一个方法可能抛出的各种异常(当然声明异常时允许无病呻吟);finally为确保一段代码不管发生什么异常状况都要被执行;try语句可以嵌套,每当遇到一个try语句,异常的结构就会被放入异常栈中,直到所有的try语句都完成。如果下一级的try语句没有对某种异常进行处理,异常栈就会执行出栈操作,直到遇到有处理这种异常的try语句或者最终将异常抛给JVM。

    3、运行时异常与受检异常有何异同?

    答:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误,只要程序设计得没有问题通常就不会发生。受检异常跟程序运行的上下文环境有关,即使程序设计无误,仍然可能因使用的问题而引发。Java编译器要求方法必须声明抛出可能发生的受检异常,但是并不要求必须声明抛出未被捕获的运行时异常。异常和继承一样,是面向对象程序设计中经常被滥用的东西,在Effective Java中对异常的使用给出了以下指导原则: 
    - 不要将异常处理用于正常的控制流(设计良好的API不应该强迫它的调用者为了正常的控制流而使用异常) 
    - 对可以恢复的情况使用受检异常,对编程错误使用运行时异常 
    - 避免不必要的使用受检异常(可以通过一些状态检测手段来避免异常的发生) 
    - 优先使用标准的异常 
    - 每个方法抛出的异常都要有文档 
    - 保持异常的原子性 
    - 不要在catch中忽略掉捕获到的异常
     

    展开全文
  • 异常处理,error和exception区别

    千次阅读 2018-11-20 21:12:26
    异常是指程序运行时(非编译时)所发生的非正常情况或错误(事先没有预料到的情况),当程序违反了语义规则时,JVM将出现的错误表示为一个异常并抛出。这个异常可以在catch块中...分为Error(错误)和Exception(异...

    异常是指程序运行时(非编译时)所发生的非正常情况或错误(事先没有预料到的情况),当程序违反了语义规则时,JVM将出现的错误表示为一个异常并抛出。这个异常可以在catch块中进行捕获,然后进行处理。异常处理的目的是为了提高程序的安全性与鲁棒性。

    Java语言把异常当作对象来处理,并定义了一个基类Java.lang.Throwable作为所有异常的父类。分为Error(错误)和Exception(异常)2大类。

    “违反语义规则”包括2种情况:一种是Java类库内置的语义检查,例如数组下标越界,空指针异常;另一种是Java允许开发人员扩展这种语义检查,并自由选择在何时用throw关键字抛出异常。

    Error表示程序在运行期间发生了非常严重的错误,且错误不可恢复,属于JVM层次的严重错误,会导致程序终止运行。编译器不会检查error是否被处理

    Exception表示可恢复 的异常,是编译器可以捕捉到的,包含2种类型:检查异常(Checked Exception)和运行时异常(Runtime Exception)。

         检查异常是在程序中经常碰到的异常,比如常见IO异常和SQL异常,这些异常都发生在编译阶段,Java编译器强制程序捕捉此类型异常,把可能出现这些异常的代码放在try块中,对异常处理的代码放在catch块中。

         运行时异常不同于检查异常,编译器没有强制程序捕捉此类型异常,出现这种异常时,会由JVM处理,例如空指针异常,类型转换,数组越界,算术异常。出现运行时异常后,系统会把异常一直往上抛,直到遇到处理代码为止。

     

    展开全文
  • Error和Exception有什么区别? 1.Error和Exception都实现了Throwable接口 Throwable是类,Exception和Error都继承了该类 所以在捕捉的时候,也可以使用Throwable进行捕捉 如图: 异常分Error和Exception Exception里...
  • Error和Exception区别

    2016-10-14 14:27:49
    关于ErrorException的一道题: Given: 11. static void test() throws Error { 12. if (true) throw new AssertionError(); 13. System.out.print("test "); 14. } 15. public static void main(String[] ...
  • Error和Exception有什么区别
  • 1 Error和Exception类 1.1Error(错误) 1.2Exception(异常) 1.3常见的RuntimeException异常 1.4常见的CheckedException异常 2 throwthrows 2.1 位置不同 2.2 功能不同 1 Error和ExceptionError...
  • Java - Error和Exception有什么区别

    万次阅读 2019-03-15 10:21:48
    Error表示系统级的错误程序不必处理的异常,是恢复起来不是不可能但很困难的情况下的一种严重问题:比如内存溢出,不可能指望程序能处理这样的情况。 Exception表示需要捕捉或者需要程序进行处理的异常,是一种...
  • 很多程序员不清楚error和exception之间的区别,这区别对于如何正确的处理问题而言非常重要(见附1,“简要的叙述error和exception”)。就像Mary Campione的“The Java Tutorial”中所写的:“exception就是在程序执行...
  • http://www.myexception.cn/java%20exception/236.html 很多程序员不清楚error和exception之间的区别,这区别对于如何正确的处理问题而言非常重要(见附1,“简要的叙述error和exception”)。就像Mary Campione的...
  • 一、类继承结构 java.lang.Object |- java.lang.Throwable ...二、Throwable、Error和Exception区别 Throwable 所有error/exception的父类,只有其实例可被throw & catch。 Error 应用程序不应试
  • error和exception有什么区别?

    千次阅读 2009-03-11 13:36:00
    error和exception区别error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况;exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会...
  • 简述Error和Exception区别

    千次阅读 2015-08-31 20:11:39
    Java异常结构中定义有Throwable类,Exception和Error是其派生的两个子类。其中Exception表示由于网络故障、文件损坏、设备错误、用户输入非法等情况导致的异常;而Error表示Java运行时环境出现的错误,例如:JVM内存...
  • Java异常Error和Exception区别

    万次阅读 多人点赞 2017-10-10 18:50:19
    Java异常又可以分为不受检查异常(Unchecked Exception检查异常(Checked Exception)。 下面将详细讲述这些异常之间的区别与联系: ErrorError类对象由 Java 虚拟机生成并抛出,大多数错误与代码...
  • Java中Error和Exception区别

    千次阅读 2013-06-14 16:48:53
    Error和Exception类都继承自Throwable类。 Error的继承关系: java.lang.Object   java.lang.Throwable  java.lang.Error   Exception的继承关系: java.lang.Object java.lang.Throwable ...
  • Error和Exception类都继承自Throwable类。 Error的继承关系: java.lang.Object --java.lang.Throwable --java.lang.Error Exception的继承关系: java.lang.Object --java.lang.Throwable --java....
  • java中error和exception区别

    万次阅读 多人点赞 2012-09-18 10:16:22
    Error和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法...
  • 谈一谈Java中的Error和Exception

    万次阅读 多人点赞 2015-07-29 09:45:39
    Error和Exception的联系 继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自ExceptionError和RuntimeException及其子类称为未检查异常(Unchecked...Error和Exception区别 Error类一般是指与
  • 理解error和exception之间的区别

    千次阅读 2003-05-22 08:39:00
    理解error和exception之间的区别 理解error和exception之间的区别,学习如何对其进行处理 很多程序员不清楚error和exception之间的区别,这区别对于如何正确的处理问题而言非常重要(见附1,“简要的叙述error和...
  • java的Error和Exception区别联系

    千次阅读 2012-03-28 00:00:36
    Error和Exception类都继承自Throwable类。 Error的继承关系: Exception的继承关系: 二者的不同之处: Exception: 1.可以是可被控制(checked) 或不可控制的(unchecked)。 2.表示一个由程序员导致的...
  •  Error:程序无法处理的系统错误,编译器不做检查;  Exception:程序可以处理的异常,捕获后可能恢复; 总结:前者是程序无法处理的错误,后者是可以处理的异常。 从责任角度分析:  Error:属于JVM需要...
  • Java中error和exception的异同

    千次阅读 2018-07-23 20:28:00
    前言: ...Java中的error和exception 两者的“异”&各自的概念: 1.errorerror 是指在正常情况下,不大可能出现的情况,绝大部分的 Error 都会导致程序处于非正常的、不可恢复状态。(...
  • ERROREXCEPTION区别

    千次阅读 2015-11-05 09:56:06
    Throwable 是所有 Java 程序中错误处理的父类 ,有两种子类: Error ExceptionError :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误 ,导致 JVM 无法继续执行,因此,这是不可捕捉...
  • 下面将详细讲述这些异常之间的区别与联系: ErrorError类对象由 Java 虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。例如,Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 754,776
精华内容 301,910
关键字:

error和exception的区别