Java异常体系非正常停止和分类

目录
  • 一、异常概念
  • 二、异常体系
  • 三、异常分类
  • 四、异常的产生过程解析

一、异常概念

异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是:

  • 异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。

在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。

异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行.

二、异常体系

异常机制其实是帮助我们找到程序中的问题,异常的根类是java.lang.Throwable,其下有两个子类:java.lang.Errorjava.lang.Exception,平常所说的异常指java.lang.Exception

Throwable体系:

  • Error:严重错误Error,无法通过处理的错误,只能事先避免,好比绝症。
  • Exception:表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的。好比感冒、阑尾炎。

Throwable中的常用方法:

  • public void printStackTrace():打印异常的详细信息。

包含了异常的类型,异常的原因,还包括异常出现的位置,在开发和调试阶段,都得使用printStackTrace。

  • public String getMessage():获取发生异常的原因。

提示给用户的时候,就提示错误原因。

  • public String toString():获取异常的类型和异常描述信息(不用)。

出现异常,不要紧张,把异常的简单类名,拷贝到API中去查。

三、异常分类

我们平常说的异常就是指Exception,因为这类异常一旦出现,我们就要对代码进行更正,修复程序。 异常(Exception)的分类:根据在编译时期还是运行时期去检查异常?

  • 编译时期异常:checked异常。在编译时期,就会检查,如果没有处理异常,则编译失败。(如日期格式化异常)
  • 运行时期异常:runtime异常。在运行时期,检查异常.在编译时期,运行异常不会编译器检测(不报错)。(如数学异常)

四、异常的产生过程解析

先运行下面的程序,程序会产生一个数组索引越界异常ArrayIndexOfBoundsException。我们通过图解来解析下异常产生的过程。 工具类

public class ArrayTools {
    // 对给定的数组通过给定的角标获取元素。
    public static int getElement(int[] arr, int index) {
        int element = arr[index];
        return element;
    }
}

测试类:

public class ExceptionDemo {
    public static void main(String[] args) {
        int[] arr = { 34, 12, 67 };
        intnum = ArrayTools.getElement(arr, 4)
        System.out.println("num=" + num);
        System.out.println("over");
    }
}

上述程序执行过程图解: 

到此这篇关于Java异常体系非正常停止和分类的文章就介绍到这了,更多相关Java异常体系 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • JAVA异常体系结构详解

    一.什么是异常 异常:程序在运行过程中发生由于硬件设备问题.软件设计错误等导致的程序异常事件.(在Java等面向对象的编程语言中)异常本身是一个对象,产生异常就是产生了一个异常对象.      --百度百科 二.异常体系 Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类. 在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception.   其中异常类Exception又分为运行时异常(RuntimeEx

  • Java IO流之原理分类与节点流文件操作详解

    目录 IO流简介 IO流原理 流的分类 IO 流体系 节点流和处理流 节点流操作 IO流简介 I/O是Input/Output的缩写, I/O技术是非常实用的技术,用于处理设备之间的数据传输.如读/写文件,网络通讯等. Java程序中,对于数据的输入/输出操作以"流(stream)" 的方式进行. java.io包下提供了各种"流"类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据. IO流原理 输入input:读取外部数据(磁盘.光盘等存储设备的数据

  • Java中锁的分类与使用方法

    Lock和synchronized 锁是一种工具,用于控制对共享资源的访问 Lock和synchronized,这两个是最创建的锁,他们都可以达到线程安全的目的,但是使用和功能上有较大不同 Lock不是完全替代synchronized的,而是当使用synchronized不合适或不足以满足要求的时候,提供高级功能 Lock 最常见的是ReentrantLock实现 为啥需要Lock syn效率低:锁的释放情况少,试图获得锁时不能设定超时,不能中断一个正在试图获得锁的线程 不够灵活,加锁和释放的时

  • Java IO之流的分类详解

    目录 一.根据流向分为输入流和输出流: 二.根据传输数据单位分为字节流和字符流 三.根据功能分为节点流和包装流 总结 一.根据流向分为输入流和输出流: 注意输入流和输出流是相对于程序而言的. 输出:把程序(内存)中的内容输出到磁盘.光盘等存储设备中 输入:读取外部数据(磁盘.光盘等存储设备的数据)到程序(内存)中 综合起来: 二.根据传输数据单位分为字节流和字符流 上面的也是 Java IO流中的四大基流.这四大基流都是抽象类,其他流都是继承于这四大基流的. 三.根据功能分为节点流和包装流 节点

  • java中functional interface的分类和使用详解

    java 8引入了lambda表达式,lambda表达式实际上表示的就是一个匿名的function. 在java 8之前,如果需要使用到匿名function需要new一个类的实现,但是有了lambda表达式之后,一切都变的非常简介. 我们看一个之前讲线程池的时候的一个例子: //ExecutorService using class ExecutorService executorService = Executors.newSingleThreadExecutor(); executorSer

  • 如何实现java递归 处理权限管理菜单树或分类

    这篇文章主要介绍了如何实现java递归 处理权限管理菜单树或分类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.数据库表设计 2.实体类设计 package com.ieou.capsule.dto.SystemPermissions; import java.util.List; /** * 功能菜单类 */ public class SystemPermissionsTree { private String functionCode;

  • Java异常体系非正常停止和分类

    目录 一.异常概念 二.异常体系 三.异常分类 四.异常的产生过程解析 一.异常概念 异常,就是不正常的意思.在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象.Java处理异常的方式是中断处理. 异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码

  • java异常级别与捕获的示例代码

    这个是jdk 1.8文档中异常的种族描述 可以看出Java异常体系的根类是 Throwable, 当在java代码中写throw抛出异常时,后面跟的对象必然是Throwable或其子类的对象. 然后往下又分为 Exception(异常) 和 Error 其中Exception异常是指一些可以恢复的异常, 例如常见的NullPointerException空指针异常. Error指的是一些致命的错误,无法通过程序代码手段恢复的异常,例如OutOfMemoryError内存溢出错误. 如果能善用异常

  • 一篇文章带你深入了解Java异常

    目录 一.初识异常 1.常见的异常类型 <1>除以0 <2>数组下标越界 <3>访问null对象 2.防御式编程 <1>LBYL <2>EAFP 二.异常的基本用法 1.捕获异常 <1>基本语法: <2>try catch代码示例 <3>try catch finally代码示例 2.异常的处理流程 3.抛出异常(使用throw关键字) 三.java异常体系 1.java内置异常 2.自定义异常类 总结 一.初

  • Java异常分类及统一处理详解

    一.异常分类 java异常分为"检查"和"非检查"两类,"检查"二字的意思是,代码编译时,编译器会去Check一下有没有进行异常处理(捕获或向上抛),对于归类为需要检查的异常,若没处理,编译就过不去.        初学的时候,常常想为啥异常要这样分类处理? 后来明白了些,异常不过两种:主观和客观,一个大多数情况下可以避免,一个大多数情况下无法避免.        像NullPointerException这类异常,大多跟程序员素质挂钩(开发好,

  • Java异常分类处理抛出捕获操作详解

    目录 什么是异常 1.算术异常 2.数组越界异常 3.空指针异常 异常的分类 异常的抛出(throw关键字) 异常的捕获 throws关键字 try catch关键字 finally关键字 总结 什么是异常 “程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.” 我们在平时写代码的过程中就可能会遇到异常,给大家给举一些容易遇到常见的异常例子: 1.算术异常 Exception in thread “main” java.lang.ArithmeticExcept

  • 全面了解java异常

    目录 异常的概念 异常体系 异常的分类 异常产生的过程分析 异常的处理 抛出异常throw 声明异常throws 捕获异常try-catch 捕获异常语法 如何获取异常信息: finally代码块 try catch 语句中有return 的各类情况 异常注意事项 自定义异常 概述 自定义异常演示 异常的概念 异常,在程序中的意思是:程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止. Java的异常机制主要依赖于try.catch.finally.throw和throws五个关

  • Java异常类型以及处理实例详解

    目录 一.异常的描述 二.异常的体系 三.异常的分类: 四.异常处理的捕捉形式 五.异常处理的原则 六.finally 七.异常的应用 八.异常的注意事项: 总结 一.异常的描述 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止.在Java中即,Java在编译或运行或者运行过程中出现的错误. Java提供了更加优秀的解决办法:异常处理机制. 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处

  • java 异常详解及应用实例

    java  异常 异常的使用实例(异常分类:Error(是由JVM调用系统底层发生的,只能修改代码) 和 Exception(是JVM发生的,可以进行针对性处理)) 1.如果一个方法内可能出现异常,那么可以将异常通过throw的方式new 出相应的异常类,并在方法上   声明throws可能抛出的异常类抛给调用者,调用者可以进行异常捕获,或者继续抛出异常由 上层调用者继续处理,    如果整个过程都没有将异常进行任何处理,那么将由JVM虚拟机进行默认的处理 2.调用者可以对异常进行try()ca

  • Java异常详解_动力节点Java学院整理

    什么是异常? 异常是Java语言中的一部分,它代表程序中由各种原因引起的"不正常"因素. 那么在程序中什么样的情况才算不正常呢? 我认为可以这样定义:如果出现了这么一种情况,它打断了程序期望的执行流程,改变了控制流的方向(包括让JVM停掉),那么就可以认为发生了不正常情况,也就是引发了异常.举个例子显而易见的例子: FileOutputStream out = null; try { out = new FileOutputStream("abc.text"); o

随机推荐