基本概念

  • 将程序执行中发生的不正常的情况称为“异常”。开发中的语法错误和逻辑错误不是异常

执行过程中的异常事件可分为两大类

  • 错误(Error):Java虚拟机无法解决的严重问题。例如:JVM系统内存错误,资源耗尽等严重问题
  • Exception:其他因为编程错误或偶尔的外在因素导致的一般性
  • 可以针对不同的代码进行处理

Exection有(编译异常[编译时,编译器查找出的异常]和运行异常[开发时,运行时])

异常体系图

异常体系图总结

  • 一般分为两大类,一种是编译时异常,一种是运行时异常
  • 运行时异常编译器检查不出来。一般是指编译时逻辑错误 ,是程序员应该避免其异常
  • 对于运行时异常可以不做处理,因为这类异常很普遍,若全处理可能会对程序的可读性,运行效率产生影响
  • 编译时异常,是编译器要求必须处理的异常

常见的运行时异常

  • Null Pointer Exception 空指针异常  : 指还没有创建对象就想使用,会抛出空指针异常,当应用程序在需要对象的地方使用null时,会抛出异常
  • Airthmetic Exception 数学运算异常:会出现异常的运算条件时抛出异常。例如一个整数除零时会抛出异常
  • ArrayIndex OutOfBounds Exception 数组下标越界异常:数组下标越界异常,用非法索引访问数组时抛出异常。如果索引为负或大于等于数组大小则所因为非法索引。
  • Class cast Excetion 类型转换异常:当试图将对象强制转换为不是实例的子类时,会抛出异常
  • Number Format Excetion 数字格式不正确异常:当应用程序试图将字符串转成一种数值类型,但该字符串不能转换为适当格式,抛出异常

编译异常

  • 编译异常就是指编译阶段,就必须处理的异常,否则代码不能通过编译
  • 常见的编译异常

异常处理

  • 异常处理就是在异常发生时,对异常处理的方式
  • 异常处理的方式

  • 理解

  • try-catch-finally 执行顺序小结

throws 异常处理

throws和throw的区别

java中的异常(Exception)的更多相关文章

  1. Java中的异常Exception

    涉及到异常类相关的文章: (1)异常类不能是泛型的 http://www.cnblogs.com/extjs4/p/8888085.html (2)Finally block may not comp ...

  2. Java中的Checked Exception——美丽世界中潜藏的恶魔?

    在使用Java编写应用的时候,我们常常需要通过第三方类库来帮助我们完成所需要的功能.有时候这些类库所提供的很多API都通过throws声明了它们所可能抛出的异常.但是在查看这些API的文档时,我们却没 ...

  3. 【Java心得总结二】浅谈Java中的异常

    作为一个面向对象编程的程序员对于 下面的一句一定非常熟悉: try { // 代码块 } catch(Exception e) { // 异常处理 } finally { // 清理工作 } 就是面向 ...

  4. Java中的异常-Throwable-Error-Exception-RuntimeExcetpion-throw-throws-try catch

    今天在做一个将String转换为Integer的功能时,发现Integer.parseInte()会抛出异常NumberFormatException. 函数Integer.parseInt(Stri ...

  5. Java中的异常详解

    一.异常定义 阻止当前方法或作用域继续执行的问题,称为异常 二.异常分析      所有不正常类都继承Throwable类,这个类主要有两个子类Error类和Exception类.Error指系统错误 ...

  6. Java中的异常和处理详解

    简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. ...

  7. Java中的异常简介

    Java中异常的分类 Java中的异常机制是针对正常运行程序的一个必要补充,一般来说没有加入异常机制,程序也能正常运营,但是,由于入参.程序逻辑的严谨度,总会有期望之外的结果生成,因此加入异常机制的补 ...

  8. java中的异常类

    Java中的异常: 1. Throwable是所有异常的根,java.lang.Throwable Throwable包含了错误(Error)和异常(Exception),Exception又包含了运 ...

  9. Java 中的异常

    前段时间集合的整理真的是给我搞得心力交瘁啊,现在可以整理一些稍微简单一点的,搭配学习 ~ 突然想到一个问题,这些东西我之前就整理过,现在再次整理有什么区别嘛?我就自问自答一下,可能我再次整理会看到不一 ...

随机推荐

  1. Java当中“+=”和“=+”的区别

    "+="会自动类型强制转换! 隐含了一个强制类型转换! 一 string a1 = "9"; int a2 = 10; a1+=a2; a1=a1+a2; 不会 ...

  2. 深入聊一下const关键字

    const是一个C语言的关键字,它限定一个变量不允许被改变.使用const在一定程序上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解别人的程序有所帮助. 1.c ...

  3. AT2582 [ARC075D] Mirrored

    首先因为这个问题的解的范围我们是不清楚的,可以先考虑一下解的范围以便后面的解题. 那么我们可以大胆猜测这个数的位数应该不会很长,否则除非使用一条与 \(D\) 有关的式子外,不论我们用什么方法都计算不 ...

  4. c语言中数组的定义和java中数组定义的一些区别

    感谢原文:https://blog.csdn.net/gzwdz778/article/details/79799408 一维情况下: c中,数组的声明需要给出数组的维数,比如: int arr[5] ...

  5. linux安装python3.6.6和新建虚拟环境

    基础准备 修改本地时区 cp -rf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 安装epel yum源 yum -y install epel- ...

  6. 企业级Docker容器镜像仓库Harbor的搭建

    Harbor简述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理 ...

  7. 接口里的default,static方法

    我们都知道接口里的变量默认隐含类型是public static final,也是就是说是常量.而方法默认类型是public abstract,所以接口的方法都是抽象方法,但是事实真的是这样吗? 我的P ...

  8. druid 数据源密码加密配置

    <!-- 数据源配置 --> <bean id="default" class="com.alibaba.druid.pool.DruidDataSou ...

  9. Solution -「CF 156D」Clues

    \(\mathcal{Description}\)   link.   给一个 \(n\) 个点 \(m\) 条边的无向图 \(G\).设图上有 \(k\) 个连通块,求出添加 \(k-1\) 条边使 ...

  10. Python面向对象之 - 继承

    情况一:  子类完全继承父类所有的属性和方法, 自己没有一点更改. class Person(): def __init__(self, name, age): self.name = name se ...