zoukankan      html  css  js  c++  java
  • Java基础知识强化之IO流笔记01:异常的概述和分类

     IO流操作的时候会出现很多问题,java中叫作异常,所以我们先介绍一下异常:

    1. 程序的异常:Throwable(Throwable类是java中所有异常或错误的超类)

    (1)严重问题:Error(Throwable的子类) 我们不处理,这种问题一般都是很严重的,比如说内存溢出。这些问题不是代码能够解决。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止

      这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(Virtual MachineError)、类定义错误(NoClassDefFoundError)等。这些错误是不可查的,因为它们在应用程序的控制和处理能力之外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。在 Java中,错误通过Error的子类描述。

    (2)问题:Exception(Throwable的子类)

    •编译期间问题 不是RuntimeException的异常:

      必须进行处理,因为如果你不处理,编译就不能通过程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。

      在编译的时候,会检查代码可能会出异常的地方,比如需要的资源(jar包,或者类)找不到,此时虚拟机内部就会抛出异常,对于抛出的异常,你必须处理或者抛给你上一级

      Java追求的是无故障,健壮的代码,因此对一些可预知和不可预知的错误(如设备错误,算法缺陷等)要进行处理,有两种方法:

      一种是捕获; 一种是抛出 .

      

     

    •运行期间问题  RuntimeException(Exception的子类):

      这种问题我们也不处理,因为也是你的问题,而且这个问题肯定是我们的代码不够严谨。这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免。

    2. 异常分类图:

  • 相关阅读:
    LCT 动态树 模板
    [HNOI2010] 物品调度 fsk
    [HNOI2010] 矩阵 matrix
    [HNOI2010] 平面图判定 planar
    [HNOI2010] 公交线路 bus
    [HNOI2017]抛硬币
    [HNOI2010] 弹飞绵羊 bounce
    [HNOI2010] 合唱队 chorus
    [HNOI2017]礼物
    [HNOI2017]大佬
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4843797.html
Copyright © 2011-2022 走看看