精华内容
下载资源
问答
  • 运行时异常和非运行时异常

    千次阅读 2019-03-27 13:16:19
    运行时异常:都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般...

     

    运行时异常: 都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。

           运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过。 
    非运行时异常 (编译异常): 是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。

    展开全文
  • 运行时异常

    2013-08-14 22:08:01
    checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理...
    Java提供了两类主要的异常:runtime exception和checked exception。checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。 
    
        但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。 
    
        出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。 
    
        如果不想终止,则必须扑捉所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。在这个场景这样处理可能是一个比较好的应用,但并不代表在所有的场景你都应该如此。如果在其它场景,遇到了一些错误,如果退出程序比较好,这时你就可以不太理会运行时异常,或者是通过对异常的处理显式的控制程序退出。
    
    展开全文
  • 其中根据Exception异常进行划分,可分为运行时异常和非运行时异常。What:什么是检查异常(checked exception)?就是编译器要求你必须处置的异常。不知道你编程的时候有没有遇到过,你写的某段代码,编译器要求你必...

    通常,Java的异常(包括Exception和Error)分为

    检查异常(checked exceptions)和非检查的异常(unchecked exceptions)。

    其中根据Exception异常进行划分,可分为运行时异常和非运行时异常。

     

    What:什么是检查异常(checked exception)?

    就是编译器要求你必须处置的异常。不知道你编程的时候有没有遇到过,你写的某段代码,编译器要求你必须要对这段代码try...catch,或者throws exception,如果你遇见过,没错,这就是检查异常,也就是说,你代码还没运行呢,编译器就会检查你的代码,会不会出现异常,要求你对可能出现的异常必须做出相应的处理。

    How:怎样处理检查异常(checked exception)?

    1、继续抛出,消极的方法,一直可以抛到java虚拟机来处理,就是通过throws exception抛出。
    2、用try...catch捕获
    注意,对于检查的异常必须处理,或者必须捕获或者必须抛出

    Where:检查异常有哪些呢?

    除了RuntimeException与其子类,以及错误(Error),其他的都是检查异常(绝对的大家族)。

     

    What:什么是非检查异常(unchecked exceptions)

    编译器不要求强制处置的异常,虽然你有可能出现错误,但是我不会在编译的时候检查,没必要,也不可能。

    How:对未检查的异常(unchecked exception )怎样处理?

    1、捕获
    2、继续抛出
    3、不处理

    一般我们是不处理的,因为你很难判断会出什么问题,而且有些异常你也无法运行时处理,比如空指针,需要人手动的去查找。

    而且,捕捉异常并处理的代价远远大于直接抛出。

     

    Why:为什么有非检查异常?

    你想想非检查异常都有哪些?NullPointerException,IndexOutOfBoundsException,VirtualMachineError等,这些异常你编译的时候检查吗?再说了,明明可以运行时检查,都在编译的时候检查,你写的代码还能看吗?而且有些异常只能在运行时才能检查出来,比如空指针,堆溢出等。

    Where:非检查异常有哪些?

    RuntimeException与其子类,以及错误(Error)。

     

    Exception异常进行划分,它可分为运行时异常和非运行时异常。

    What:什么是运行时异常?

    都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是非检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。

    运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过。

    What:什么是非运行时异常?

    是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不要自定义检查异常。

     

    我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。

    展开全文
  • java 运行时异常与非运行时异常理解

    万次阅读 2017-04-11 11:23:52
    java异常分为两种:运行时异常(RuntimeException)和非运行时异常(CheckedException)也叫检查式异常。 1.运行时异常是不需要捕获的,程序员可以不去处理,当异常出现时,虚拟机会处理。常见的运行时异常有空...
    所谓的异常就是阻止当前程序或方法继续执行的问题。 
    

    java异常分为两种:运行时异常(RuntimeException)非运行时异常(CheckedException)也叫检查式异常。

    1.运行时异常是不需要捕获的,程序员可以不去处理,当异常出现时,虚拟机会处理。常见的运行时异常有空指针异常。

    我们常见的5中运行时异常:
    
    ClassCastException(类转换异常) 
    IndexOutOfBoundsException(数组越界) 
    NullPointerException(空指针) 
    ArrayStoreException(数据存储异常,操作数组时类型不一致) 
    还有IO操作的BufferOverflowException异常 
    

    具体可以参见java的API:http://docs.oracle.com/javase/7/docs/api/

    2.非运行时异常就必须得捕获了,否则编译不过去,java编译器要求程序员必须对这种异常进行catch,Java认为Checked异常都是可以被处理(修复)的异常,所以Java程序必须显式处理Checked异常。

    常见的非运行异常有io异常和sql异常。
    
    IOException、FileNotFoundExcetion 和SQLException
    

    finally是异常处理工作的一部分,表示总是执行。一般finally写的代码语句就是流的关闭。也就是做了一项清理,工作清理工作对于我们来说是必不可少的,因为如果一些消耗资源的操作,比如IO,JDBC。如果我们用完以后没有及时正确的关闭,那后果会很严重,这意味着内存泄露。(有人说过,对于资源的及时正确的清理是程序员的基本素质之一)

    另外不得不说异常处理中的throws和throw的区别了。

    1、throws出现在方法的声明中,表示该方法可能会抛出的异常,允许throws后面跟着多个异常类型
    2、throw出现在方法体中,用于抛出异常。当方法在执行过程中遇到异常情况时,将异常信息封装为异常对象,然后throw。


    展开全文
  • 运行时异常和非运行时异常 (1)运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般...
  • JAVA运行时异常和非运行时异常

    千次阅读 2019-01-23 14:27:49
    1,运行时异常:程序员不需要去处理,当异常出现的时候,JVM会为我们处理,常见的如下:  I,类转换异常:ClassCastException  II,数组越界异常:IndexOutOfBoundsException  III,空指针异常:...
  • 运行时异常是非受检异常,是RuntimeException的子类,即编译器无法检测,因此也不会强制要求程序员处理。 编译时异常是受检异常,编译器检测到代码抛出编译时异常时,会要求程序员必须对该异常做处理(throws或try…...
  • 运行时异常与非运行时异常的区别

    千次阅读 2017-07-14 13:58:47
    java运行时异常是可能在java虚拟机正常工作时抛出的异常。 java提供了两种异常机制。一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption)(非运行时异常)。 检查式异常:我们经常遇到的IO...
  • 1、非运行时异常:是需要显示用try-catch捕捉处理的异常,如IOException等 2、运行时异常:不需要显示捕捉,如NullPointException等,常见于程序逻辑问题导致 背景 异常处理理论上有两种基本模型。终止模型,表示...
  • 建议使用运行时异常和编译时异常叫法,便于区分和理解(非运行时异常是什么异常?很懵逼) 编译时异常:程序没有通过编译器的编译,必须处理掉这个异常程序才能正常运行,比如文件路径找不到异常,类找不到异常,IO...
  • 运行时异常catch的:继续执行 运行时异常不catch的:挂掉线程 其他异常都是编译时会被检测出来的必须catch:继续执行。 一,异常的概念 Java异常类层次结构图:  Throwable: 有两个重要的子类:Exception...
  • Java checked 异常 和 RuntimeException(运行时异常)

    万次阅读 多人点赞 2017-08-04 23:34:22
    目录 一、运行时异常 1、什么是RuntimeExceptioin 2、运行时异常的特点 3、如何运用运行时异常 二、运行时异常和ckecked异常的区别 1、机制上 2、逻辑上 一、运行时异常1、什么是运行时异常程序在运行过程中...
  • 一 什么是编译时异常,什么是运行时异常 运行时异常可以通过改变程序避免这种情况发生,比如,除数为0异常,可以先判断除数是否是0,如果是0,则结束此程序。从继承上来看,只要是继承RunTimeException类的,都是...
  • java编译时异常和运行时异常

    千次阅读 2017-05-02 12:47:44
    一 什么是编译时异常,什么是运行时异常 运行时异常可以通过改变程序避免这种情况发生,比如,除数为0异常,可以先判断除数是否是0,如果是0,则结束此程序。从继承上来看,只要是继承RunTimeException类的,都是...
  • 运行时异常和非运行时异常例子:  我写一个类如下:   import java.io.*;   public abstract class MyLayer   {   ...   void someFun()   {   if(condtion)   {   throw new ...
  • 1.Java异常机制Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图...其中异常Exception分为运行时异常(Ru
  • Java编译时异常和运行时异常

    千次阅读 2016-06-13 21:41:20
    什么是编译时异常,什么是运行时异常
  • 运行时异常和受检查异常的区别

    万次阅读 2018-05-06 14:13:52
    java异常:受检查时异常和运行时异常(非编译时异常) 首先介绍一下我们常见的集中描述:受检查时异常,编译异常,非运行时异常 描述可以理解为同一个意思, 运行时异常,非编译时异常,非受检查时异常 等同 // 非...
  • java中的编译时异常和运行时异常

    千次阅读 2019-03-06 23:29:22
    首先区分一下编译时异常和运行时异常 运行时异常,也就是extends RuntimeException的异常编译时不用try{}catch(){}和throws 编译时异常,也就是extends Exception 的异常需要在调用时try{}catch(){}或throws 下面...
  • 编译时异常&运行时异常 A: 编译时期异常:是Exception的子类,非RuntimeExcpetion的子类,在编译时期必须处理 B:RuntimeException和他的所有子类异常,都属于运行时期异常。NullPointerException,...
  • 运行时异常:都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般...
  • 受检异常和运行时异常

    千次阅读 2019-06-03 18:59:27
    Java提供了三种可抛出结构:受检异常、运行时异常和错误(Error)。 Throwable —Error:未受检异常。 —Exception ——RuntimeException:未受检异常。 受检异常:如果期望调用者能够适当地恢复,使用受检异常 未...
  • 面试中,经常会遇到这样的情况,问:谈谈运行时异常和非运行时异常?答:运行时异常是指程序运行时发生的异常问:那么非运行时异常又是什么时候发生?答:。。。。。。问:请罗列几个常见的运行时异常?答:空指针...
  • java异常4:编译期异常和运行时异常

    千次阅读 2018-10-23 19:35:02
    (1)Java中的异常被分为两大类:编译时异常和运行时异常。 (2)所有的RuntimeException类及其子类的实例被称为运行时异常,其他的异常就是编译时异常。 编译时异常 Java程序必须显示处理,否则程序就会发生错误,...
  • java 运行时异常和检查异常

    千次阅读 2017-02-18 22:52:41
    Java把异常当做对象来处理,并定义...其中异常Exception分为运行时异常(RuntimeException)和非运行时异常(checkedexception) 1、RuntimeException: 也称运行时异常,程序中可以选择捕获处理,也可以不处理。这些异
  • Java运行时异常和非运行时异常

    千次阅读 2019-06-04 09:06:35
    1. Java异常机制 Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示...其中异常Exception分为运行...
  • Java常见运行时异常

    2019-04-11 14:24:14
    一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption)。 检查式异常:我们经常遇到的IO异常及sql异常就属于检查式异常。对于这种异常,java编译器要求我们必须对出现的这些异常进行catch 所以...
  • 运行时异常运行时异常表示虚拟机的通常操作中可能遇到的异常,它意味着程序存在着bug。 编译时异常和程序的上下文条件有着密切关系,即使程序设计无误也会由于使用问题而引发。Java编译器要求方法必须声明抛出...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,394
精华内容 13,757
关键字:

运行时异常