java中的异常(Exception)
基本概念
将程序执行中发生的不正常的情况称为“异常”。开发中的语法错误和逻辑错误不是异常
执行过程中的异常事件可分为两大类
- 错误(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)的更多相关文章
- Java中的异常Exception
涉及到异常类相关的文章: (1)异常类不能是泛型的 http://www.cnblogs.com/extjs4/p/8888085.html (2)Finally block may not comp ...
- Java中的Checked Exception——美丽世界中潜藏的恶魔?
在使用Java编写应用的时候,我们常常需要通过第三方类库来帮助我们完成所需要的功能.有时候这些类库所提供的很多API都通过throws声明了它们所可能抛出的异常.但是在查看这些API的文档时,我们却没 ...
- 【Java心得总结二】浅谈Java中的异常
作为一个面向对象编程的程序员对于 下面的一句一定非常熟悉: try { // 代码块 } catch(Exception e) { // 异常处理 } finally { // 清理工作 } 就是面向 ...
- Java中的异常-Throwable-Error-Exception-RuntimeExcetpion-throw-throws-try catch
今天在做一个将String转换为Integer的功能时,发现Integer.parseInte()会抛出异常NumberFormatException. 函数Integer.parseInt(Stri ...
- Java中的异常详解
一.异常定义 阻止当前方法或作用域继续执行的问题,称为异常 二.异常分析 所有不正常类都继承Throwable类,这个类主要有两个子类Error类和Exception类.Error指系统错误 ...
- Java中的异常和处理详解
简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. ...
- Java中的异常简介
Java中异常的分类 Java中的异常机制是针对正常运行程序的一个必要补充,一般来说没有加入异常机制,程序也能正常运营,但是,由于入参.程序逻辑的严谨度,总会有期望之外的结果生成,因此加入异常机制的补 ...
- java中的异常类
Java中的异常: 1. Throwable是所有异常的根,java.lang.Throwable Throwable包含了错误(Error)和异常(Exception),Exception又包含了运 ...
- Java 中的异常
前段时间集合的整理真的是给我搞得心力交瘁啊,现在可以整理一些稍微简单一点的,搭配学习 ~ 突然想到一个问题,这些东西我之前就整理过,现在再次整理有什么区别嘛?我就自问自答一下,可能我再次整理会看到不一 ...
随机推荐
- Linux 常见文件管理命令
Linux文件系统 根目录:/ 从根目录开始,下面有一堆小目录 root:根用户的目录 bin:可执行文件命令 etc:配置文件 var:日志 lib:安装包或头文件,库文件 home:所有用户的家目 ...
- 计算机电子书 2018 BiliDrive 备份
下载方式 根据你的操作系统下载不同的 BiliDrive 二进制. 执行: bilidrive download <link> 链接 文档 链接 Webpack 中文指南.epub (40 ...
- 7月3日下午 微擎芸众商城 设计思路 - laravel路由底层源码解读
学习参考文章 https://learnku.com/articles/13622/the-principle-of-laravel-routing-execution <?phpnamespa ...
- Java线程--Phaser使用
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11867895.html Java线程--Phaser使用, 代码里头有详细注释: packag ...
- Spark算子 - groupBy
释义 根据RDD中的某个属性进行分组,分组后形式为(k, [(k, v1), (k, v2), ...]),即groupBy 后组内元素会保留key值 方法签名如下: def groupBy[K](f ...
- https校验问题
一般会报SSL问题:解决办法参考 http://blog.csdn.net/a506681571/article/details/78284589 # 设置未经允许验证的SSL方法,只需运行一次便可 ...
- 关于Synchronized你了解多少?
1.说一说自己对于 synchronized 关键字的了解 synchronized是解决多线程之间访问资源的同步性,synchronized关键字可以保证被他修饰的资源在任何时刻只有一个线程访问. ...
- SpringBoot自定义classloader加密保护class文件
背景 最近针对公司框架进行关键业务代码进行加密处理,防止通过jd-gui等反编译工具能够轻松还原工程代码,相关混淆方案配置使用比较复杂且针对springboot项目问题较多,所以针对class文件加密 ...
- Vue 源码解读(2)—— Vue 初始化过程
当学习成为了习惯,知识也就变成了常识. 感谢各位的 点赞.收藏和评论. 新视频和文章会第一时间在微信公众号发送,欢迎关注:李永宁lyn 文章已收录到 github 仓库 liyongning/blog ...
- Django整体模型理解(1)
Django大概理解 *models: 设计一个模型,即在数据库中设计一个表,一个模型就是对应一个数据库中的表:models是一个类,类名就是表名,而类的属性就是表的字段.如下例子设计了两个表: f ...