精华内容
下载资源
问答
  • 浅谈Java异常及其编译时异常运行时异常的区别

    千次阅读 多人点赞 2019-03-18 18:06:48
    异常是程序编码和运行时经常发生的事件,了解异常有助于我们提高代码质量,增强系统的健壮性,这里总结一下载Java编程中,编译时异常和运行异常时的区别,并列举几种常见的异常,以供参考学习。

    异常是程序编码和运行时经常发生的事件,了解异常有助于我们提高代码质量,增强系统的健壮性,这里总结一下Java编程中的异常、以及Java编译时异常和运行时异常的区别,并列举几种常见的异常,以供参考学习。

    一、什么是异常 :在程序定义中一般指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间、或者代码编译时候,它干扰了正常的程序指令流程继续下去。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。
    在java api中的Throwable类结构如下:
    Throwable类结构图
    由其结构图可以看出,所有的异常都继承了父类Throwable。
    二、 Throwable: 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。
    Error:是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。
    这些错误表示故障发生于虚拟机自身、或者发生在虚拟机准备加载时、或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(Virtual MachineError)、类定义错误(NoClassDefFoundError)等。这些错误是不可查的,因为它们在应用程序的控制和处理能力之 外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。在 Java中,错误通过Error的子类描述。

    三、Exception(异常):是程序本身可以处理的异常。
    Exception 类有一个重要的子类 RuntimeException。RuntimeException 类及其子类表示“JVM 常用操作”引发的错误。例如,若试图使用空值对象引用、除数为零或数组越界,则分别引发运行时异常(NullPointerException、ArithmeticException)和 ArrayIndexOutOfBoundException。
    注意:异常和错误的区别:异常能被程序本身可以处理,错误是无法处理。

    通常,Java的异常(包括Exception和Error)分为可查的异常(checked exceptions)和不可查的异常(unchecked exceptions)。
    可查异常(编译器要求必须处置的异常):正确的程序在运行中,很容易出现的、情理可容的异常状况。可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常状况,就必须采取某种方式进行处理。

    除了RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。

    不可查异常(编译器不要求强制处置的异常):包括运行时异常(RuntimeException与其子类)和错误(Error)。

    Exception 这种异常分两大类运行时异常和非运行时异常(编译异常)。程序中应当尽可能去处理这些异常。

    运行时异常:都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException。这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,可以从逻辑角度出发去处理,尽可能避免这类异常的发生。

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

    四、 在 Java 应用程序中,异常处理机制为:抛出异常,或者捕捉异常
    Java语法规定:对于可查异常必须捕捉、或者声明抛出。允许忽略不可查的RuntimeExceptionError

    五、一些常见的异常类
    1). runtimeException子类:

        1、 java.lang.ArrayIndexOutOfBoundsException
        数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。
        2、java.lang.ArithmeticException
        算术条件异常。譬如:整数除零等。
        3、java.lang.NullPointerException
        空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例
        方法、 访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等
        4、java.lang.ClassNotFoundException
        找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class
        文件时,  抛出该异常。
       5、java.lang.NegativeArraySizeException  数组长度为负异常
    
       6、java.lang.ArrayStoreException 数组中包含不兼容的值抛出的异常
    
       7、java.lang.SecurityException 安全性异常
    
       8、java.lang.IllegalArgumentException 非法参数异常
    

    2).IOException

    IOException:操作输入流和输出流时可能出现的异常。
    
    EOFException   文件已结束异常
    
    FileNotFoundException   文件未找到异常
    
    1. 其他
    ClassCastException    类型转换异常类
    
    ArrayStoreException  数组中包含不兼容的值抛出的异常
    
    SQLException   操作数据库异常类
    
    NoSuchFieldException   字段未找到异常
    
    NoSuchMethodException   方法未找到抛出的异常
    
    NumberFormatException    字符串转换为数字抛出的异常
    
    StringIndexOutOfBoundsException 字符串索引超出范围抛出的异常
    
    IllegalAccessException  不允许访问某类异常
    IllegalStateException 客户端响应异常
    

    除了Java中定义的几种异常,我们也可以自定义异常,自定义的异常字需要继承Exception类即可。
    如下:

    package com.wlgdo.webiot.exceptions;
    
    /**
     * @author : Ligang.Wang[wangligang@karaku.cn]
     * @date : 2019/3/19
     */
    
    public class RpcException extends Exception {
    
        String exceptionMsg; // 定义String类型变量
    
        public RpcException(String exceptionMsg) {
            exceptionMsg = exceptionMsg;
        }
    
        public String getMexceptionMsg() {
            return exceptionMsg;
        }
    }
    
    展开全文
  • 运行时异常和非运行时异常

    万次阅读 多人点赞 2019-03-13 09:54:52
    1. 【强制】Java 类库中定义的可以通过预检查方式规避的RuntimeException异常不... 说明:无法通过预检查的异常除外,比如,在解析字符串形式的数字,不得不通过catch NumberFormatException来实现。 正例:if (...

     

    1. 【强制】Java 类库中定义的可以通过预检查方式规避的RuntimeException异常不应该通过catch 的方式来处理,比如:NullPointerException,IndexOutOfBoundsException等等。 说明:无法通过预检查的异常除外,比如,在解析字符串形式的数字时,不得不通过catch NumberFormatException来实现。 正例:if (obj != null) {...} 反例:try { obj.method(); } catch (NullPointerException e) {…}

     

     

     

     

     

     

     

     

    1.Java异常机制

    Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示:

    图片来源:http://blog.csdn.NET/wuwenxiang91322/article/details/10346337

     

    2.Throwable

    Throwable类是所有异常或错误的超类,它有两个子类:Error和Exception,分别表示错误和异常。其中异常Exception分为运行时异常(RuntimeException)和非运行时异常,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)。

     

    3.Error

    一般是指java虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常应用程序无法处理这些错误,因此应用程序不应该捕获Error对象,也无须在其throws子句中声明该方法抛出任何Error或其子类。

     

    4.可查异常和不可查异常

    通常,Java的异常(包括Exception和Error)分为可查的异常(checked exceptions)和不可查的异常(unchecked exceptions)。
    可查异常(编译器要求必须处置的异常):正确的程序在运行中,很容易出现的、情理可容的异常状况。可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常状况,就必须采取某种方式进行处理。
    除了RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。
    不可查异常(编译器不要求强制处置的异常):包括运行时异常(RuntimeException与其子类)和错误(Error)。

    如果使用throw在方法体中抛出可查异常,则需要在方法头部声明方法可能抛出的异常类型。程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。

     

    5.运行时异常和非运行时异常

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

    当出现RuntimeException的时候,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。 
    出现运行时异常后,如果没有捕获处理这个异常(即没有catch),系统会把异常一直往上层抛,一直到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被catch块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。 
    如果不想终止,则必须捕获所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。


    (2)非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。如IOException、SQLException等以及用户自定义的Exception异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch并处理,否则程序就不能编译通过。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。

     

    定义 
    1、非运行时异常:是需要显示用try-catch捕捉处理的异常,如IOException等 
    2、运行时异常:不需要显示捕捉,如NullPointException等,常见于程序逻辑问题导致 
    背景 
    异常处理理论上有两种基本模型。终止模型,表示异常一旦发生就无法挽回,不能执行;恢复模型,功效类似于一个分支,通常希望异常被处理之后能继续执行程序。 
    区别 
    1、运行时异常:调用代码不能继续执行,需要立即终止。 
    2、非运行时异常:调用代码需要进一步处理和恢复 
    原则 
    1、非运行时异常是强迫使用者处理联动的操作,如sql执行失败需要关闭连接、回滚事务。此类异常若自己可以把关联处理掉则可转运行时异常。 
    2、运行时异常用于程序运行的检验、如前置条件校验、后置条件校验。 
    3、运行时异常用于运行的必要条件不具备时阻断程序运行,如连接服务器失败。 
    4、业务异常一般是条件检验的异常,基本用运行时异常声明。 
    5、系统在设计时,一般用检查异常标注可能存在的异常,用于告知开发者。 
    6、工具类中一般直接抛出原始的非运行时异常。
     

     

    展开全文
  • Java运行时异常和非运行时异常

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

    1. Java异常机制

    Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示:

    2. Throwable

    Throwable类是所有异常或错误的超类,它有两个子类:Error和Exception,分别表示错误和异常。其中异常Exception分为运行时异常(RuntimeException)和非运行时异常,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)

    3. Error

    一般是指java虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常应用程序无法处理这些错误,因此应用程序不应该捕获Error对象,也无须在其throws子句中声明该方法抛出任何Error或其子类。

    4. 可查异常和不可查异常

    通常,Java的异常(包括Exception和Error)分为可查的异常(checked exceptions)和不可查的异常(unchecked exceptions)。
    可查异常(编译器要求必须处置的异常):正确的程序在运行中,很容易出现的、情理可容的异常状况。可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常状况,就必须采取某种方式进行处理。
    除了RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。
    不可查异常(编译器不要求强制处置的异常):包括运行时异常(RuntimeException与其子类)和错误(Error)。

    如果使用throw在方法体中抛出可查异常,则需要在方法头部声明方法可能抛出的异常类型。程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。

    5. 运行时异常和非运行时异常

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

    当出现RuntimeException的时候,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。
    出现运行时异常后,如果没有捕获处理这个异常(即没有catch),系统会把异常一直往上层抛,一直到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被catch块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。
    如果不想终止,则必须捕获所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。

    (2)非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。如IOException、SQLException等以及用户自定义的Exception异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch并处理,否则程序就不能编译通过。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。

    常见RuntimeException:

    ArrayStoreException 试图将错误类型的对象存储到一个对象数组时抛出的异常
    ClassCastException 试图将对象强制转换为不是实例的子类时,抛出该异常
    IllegalArgumentException 抛出的异常表明向方法传递了一个不合法或不正确的参数
    IndexOutOfBoundsException 指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出
    NoSuchElementException 表明枚举中没有更多的元素
    NullPointerException 当应用程序试图在需要对象的地方使用 null 时,抛出该异常

    展开全文
  • 一.异常的概念 Java异常类层次结构图: Throwable:有两个重要的子类:Exception(异常...大多数错误与代码编写者执行的操作无关,而表示代码运行时JVM (Java虚拟机)出现的问题。例如。Java虚拟机运行错误(Vi...

    一.异常的概念

    Java异常类层次结构图:

    è¿éåå¾çæè¿°

    Throwable:有两个重要的子类:Exception(异常)和Error(错误),二者都是Java异常处理的重要子类,各自都包含大量子类。

    Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时JVM   (Java虚拟机)出现的问题。例如。Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作所需要的内存资源时,将出现  OutOfMemoryError  。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。

    Exception(异常):是程序本身可以处理的异常。

    Exception可以分为checked exceptions和unchecked exceptions :

    1.unchecked  exceptions(运行时异常)都是RuntimeException类及其子类异常,就是我们在开发中测试功能时程序终止,控制台出现的异常,比如:

    NullPointerException(空指针异常)、 
    IndexOutOfBoundsException(下标越界异常) 
    ClassCastException(类转换异常) 
    ArrayStoreException(数据存储异常,操作数组时类型不一致) 
    IO操作的BufferOverflowException异常       

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

    通俗的话说就是在写代码时出现红线,需要try   catch或者throws时出现的异常。

    二.关于异常的题         

    1. 运行时异常与一般异常有何异同?

    异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

    2.error和exception有什么区别?

    error表示恢复不是不可能但很困难的情况下的一种严重问题。   比如说内存溢出。不可能指望程序能处理这样的情况。exception表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

    3.Java中的异常处理机制的简单原理和应用

    异常是指java程序运行时(非编译)所发生的非正常情况或错误,与现实生活中的事件很相似,现实生活中的事件可以包含事件发生的时间、地点、人物、情节等信息,可以用一个对象来表示,Java使用面向对象的方式来处理异常,它把程序中发生的每个异常也都分别封装到一个对象来表示的,该对象中包含有异常的信息。

    Java对异常进行了分类,不同类型的异常分别用不同的Java类来表示,所有异常的根类为java.lang.Throwable,Throwable下面又派生了两个子类:Error和Exception,Error表示应用程序本身无法克服和恢复的一种严重问题,程序只有死的份了,例如,说内存溢出和线程死锁等系统问题。Exception表示程序表示程序还能够克服和恢复的一种严重问题,其中又分为系统异常和普通异常,系统异常是软件本身缺陷所导致的问题,也就是软件开发人员考虑不周所导致的问题,软件使用者无法克服和恢复这种问题,但在这种问题下还可以让软件系统继续运行或者让软件死掉,例如,数组脚本越界(ArrayIndexOutOfBoundsException)、空指针异常(NullPointerException)、类转换异常(ClassCastException);普通异常是运行环境的变化或异常所导致的问题,是用户能够克服的问题,例如,网络断线,硬盘空间不够,发生这样的异常后,程序不应该死掉。

    java为系统异常和普通异常提供了不同的解决方案,编译器强制普通异常必须try···catch处理或用throws声明继续抛给上层调用方法处理,所以普通异常也称为checked异常,而系统异常可以处理也可以不处理,所以,编译器不强制用try..catch处理或用throws声明,所以系统异常也称为unchecked异常。

    提示答题者:就按照三个级别去思考:虚拟机必须宕机的错误,程序可以死掉也可以不死掉的错误,程序不应该死掉的错误;

    4,请写出你最常见到的5个runtime exception。

    ArithmeticException——由于除数为0引起的异常;

    ArrayStoreException——由于数组存储空间不够引起的异常;

    ClassCastException—一当把一个对象归为某个类,但实际上此对象并不是由这个类 创建的,也不是其子类创建的,则会引起异常;

    IllegalMonitorStateException——监控器状态出错引起的异常;

    NegativeArraySizeException—一数组长度是负数,则产生异常;

    NullPointerException—一程序试图访问一个空的数组中的元素或访问空的对象中的 方法或变量时产生异常; OutofMemoryException——用new语句创建对象时,如系统无法为其分配内存空 间则产生异常;

    SecurityException——由于访问了不应访问的指针,使安全性出问题而引起异常;

    IndexOutOfBoundsExcention——由于数组下标越界或字符串访问越界引起异常;

    IOException——由于文件未找到、未打开或者I/O操作不能进行而引起异常;

    ClassNotFoundException——未找到指定名字的类或接口引起异常;

    CloneNotSupportedException——一程序中的一个对象引用Object类的clone方法,但 此对象并没有连接Cloneable接口,从而引起异常;

    InterruptedException—一当一个线程处于等待状态时,另一个线程中断此线程,从 而引起异常,有关线程的内容,将在下一章讲述;

    NoSuchMethodException一所调用的方法未找到,引起异常;

    Illega1AccessExcePtion—一试图访问一个非public方法;

    StringIndexOutOfBoundsException——访问字符串序号越界,引起异常;

    ArrayIdexOutOfBoundsException—一访问数组元素下标越界,引起异常;

    NumberFormatException——字符的UTF代码数据格式有错引起异常;

    IllegalThreadException—一线程调用某个方法而所处状态不适当,引起异常;

    FileNotFoundException——未找到指定文件引起异常;

    EOFException——未完成输入操作即遇文件结束引起异常。

    展开全文
  • 说到异常,大家都熟悉,只要程序出错了,那么肯定会说:“哎呀,我的程序出错啦~它抛出异常啦”。 但单单以“异常”的名称来称呼它们,未免也太粗糙了。我们毕竟是一个精致的程序员,当然得知道他们到底都有哪些...
  • 一,异常的概念 Java异常类层次结构图: Throwable: 有两个重要的子类:Exception(异常...大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(V...
  • 其中根据Exception异常进行划分,可分为运行时异常和非运行时异常。What:什么是检查异常(checked exception)?就是编译器要求你必须处置的异常。不知道你编程的时候有没有遇到过,你写的某段代码,编译器要求你必...
  • 运行时异常和非运行时异常 (1)运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般...
  • 在一个方法中,在某条语句下抛出一个运行时异常,例如:public static void main( String[] args) { System.out.print("end of method"); throw new RuntimeException("problem2"); } 发现第一种情况是end of method...
  • java受检异常运行时异常

    千次阅读 2017-12-26 15:50:34
    受检查异常表示程序可以处理的异常,如果抛出异常的方法本身不能处理它,那么方法调用者应该去处理它,从而使程序恢复运行,不至于终止程序。 例如,喷墨打印机在打印文件,如果纸用完或者墨水用完,就会暂停打印...
  • 五种常见的运行时异常

    千次阅读 2019-08-28 21:24:09
    五种常见的运行时异常 空指针异常 NullPointerException 数组越界异常 IndexOutOfBoundsException 类转换异常 ClassCaseException 向数组中存放与声明类型不兼容对象异常 ArrayStoreException ...
  • 异常(编译时异常运行时异常

    万次阅读 多人点赞 2017-03-15 15:46:41
    当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。    捕获异常 :在方法抛出异常之后...
  • JAVA运行时异常和非运行时异常

    千次阅读 2019-01-23 14:27:49
    1,运行时异常:程序员不需要去处理,当异常出现的时候,JVM会为我们处理,常见的如下:  I,类转换异常:ClassCastException  II,数组越界异常:IndexOutOfBoundsException  III,空指针异常:...
  • 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误,只要程序设计得没有问题通常就不会发生。 受检异常跟程序运行的上下文环境有关,即使程序设计...
  • 这些异常时可以通过程序员的良好编程习惯进行避免的 1:遇到运行时异常无需进行处理,直接找到出现问题的代码,进行规避。 2:就像人上火一样牙疼一样,找到原因,自行解决即可 3:该种异常编译器不会检查...
  • 常见的java非运行时异常有哪些

    千次阅读 2019-12-14 19:27:37
    1、常见的java运行时异常有哪些 了解非运行时异常看这里:什么是java中的异常 常见的运行时异常看这里:常见的运行时异常有哪些 我们所说的常见异常是jdk或者其他常用第三方jar中的异常,出现频次很高的异常。常见...
  • 受检异常运行时异常

    千次阅读 2019-06-03 18:59:27
    Java提供了三种可抛出结构:受检异常运行时异常和错误(Error)。 Throwable —Error:未受检异常。 —Exception ——RuntimeException:未受检异常。 受检异常:如果期望调用者能够适当地恢复,使用受检异常 未...
  • Java提供了两种错误的异常类,分别为Error和Exception,...此外,编译器不会检查Error是否被处理,因此在程序中不推荐去捕获Error类型的异常,主要原因是运行时异常多是由于逻辑错误导致的,属于应该解决的问题,也...
  • 运行时异常一般异常的区别

    万次阅读 2016-12-02 11:04:28
    当出现这样的异常时,总是由虚拟机 接管。比如:我们从来没有人去处理过 NullPointerException 异常,它就是运行时异常,并且这种异常还是最常见的异常之一。  出现运行时异常后,系统会把异常一直往上层抛,...
  • 异常
  • 对于程序运行过程中的可能出现异常情况,java语言使用一种称为异常处理的错误捕捉机制进行处理。相信大家对 try { }catch( ){} finally{} 这种结构非常熟悉,使用频率极高。既然经常使用它,而且也是面试常问知识点...
  • 1.Java异常机制Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,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。 比较通俗易懂的方法是,你把代码写出来之后,有红色波浪线提示你抛出或捕获异常,这...
  • 运行时异常和受检查异常的区别

    万次阅读 2018-05-06 14:13:52
    java程序设计语言提供了三种可抛出结构:受检查时异常(checked exception),运行时(run-time exception)和错误 (error) java异常:受检查时异常运行时异常(非编译时异常) 首先介绍一下我们常见的集中...
  • java几种常见运行时异常及简单例子

    千次阅读 2019-12-02 16:51:24
    java几种常见运行时异常及简单例子 1、java.lang.IndexOutOfBoundsException public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.get(0); } ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,353,365
精华内容 541,346
关键字:

运行时异常