Java 之 异常基础
一、异常概念
异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致 JVM 的非正常停止。
在 Java 等面向对象的编程语言中,异常本身就是一个类,产生异常就是创建异常对象并抛出了一个异常对象。
Java 处理异常的方式是中断处理。
异常指的并不是语法错误,语法错误,编译不通过,不会产生字节码文件,根本不能运行。
二、异常体系
异常机制 其实是帮助我们找到程序中的问题。
java.lang.Throwable:类是 Java 语言中所有错误或异常的超类。其下有两个子类:
Exception:异常,进行编译(写代码) java 程序出现的问题,程序员可以通过代码的方式纠正,使程序继续运行。
Error:严重错误,无法通过处理的错误,只能事先避免,必须通过修改源代码,程序才能继续执行。经典代表:VirtualMachineError(堆内存溢出OutOfMemoryError,栈内存溢出StackOverflowError)
三、异常分类
异常(Exception)的分类:根据编译时期还是运行时期来分类
运行时期异常:RuntimeException 运行时期异常(或它的子类)。又称非受检异常,即在运行时期,检查异常,在编译时期,运行异常不会编译器检测(不报错)。(如:空指针异常、数组下标越界、类型转换异常、数字格式异常)这些异常可以完全避免掉。
编译时期异常:Exception 异常。除了RuntimeException系列以外的,都是编译时异常,又称为受检异常。在编译时期就会检查,如果没有处理异常,则编译失败。(如:IOException、日期格式化异常)
四、异常的产生过程解析
异常的产生过程分析(分析异常的怎么产生的,如何处理异常)
五、Java 如何处理异常(处理异常的过程)?
(1)当程序运行到某一句时,发生了异常,那么程序会先停下来
(2)程序会在这句代码处,查看原因,生成一个合理“异常对象”,然后“抛”出
(3)JVM会检测在这句代码的外围,是否有try..catch结构,可以“捕获”它,
如果可以捕获,那么程序再处理完异常后,继续下面的运行,不会崩溃;
如果不能捕获,那么会把这个异常继续抛给“上级”,如果“上级”能处理,那么程序从“上级"处理完的代码后面继续运行;
如果上级也不能处理,那么继续往上抛,一直到达JVM,那么就“崩溃”
Java 之 异常基础的更多相关文章
- [编织消息框架][JAVA核心技术]异常基础
Java异常体系结构 Thorwable类所有异常和错误的超类,有两个子类Error和Exception,分别表示错误和异常. 其中异常类Exception又分为运行时异常(RuntimeExcept ...
- Java异常基础Exception
异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常. ...
- java异常基础知识点
@firstmiki 2017年1月12日12:03:32 一.异常的产生和捕获: package Exception; /** * 演示了java中异常的产生和捕获 * @firstmiki */ ...
- Java多线程系列--“基础篇”09之 interrupt()和线程终止方式
概要 本章,会对线程的interrupt()中断和终止方式进行介绍.涉及到的内容包括:1. interrupt()说明2. 终止线程的方式2.1 终止处于“阻塞状态”的线程2.2 终止处于“运行状态” ...
- 【Java面试】基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...
- Java 笔试面试 基础篇 一
1. Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法, 线程的语法,集合的语法,io 的语法,虚拟机方面的语法. 1.一个".java& ...
- Java面向对象编程基础
一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...
- 浅析关于java的一些基础问题(上篇)
要想让一个问题变难,最基本有两种方式,即极度细化和高度抽象.对于任何语言的研究,良好的基础至关重要,本篇文章,将从极度细化的角度 来解析一些java中的基础问题,这些问题也是大部分编程人员的软肋或易混 ...
- 2.4JAVA基础复习——JAVA语言的基础组成数组
JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号 ...
随机推荐
- RMP和YUM软件安装
1.卸载RPM包 rpm -e rpm包的名称 2.安装rpm包 rmp -ivh xxx.rpm 3.查询yum服务器是否有需要安装的软件 yum list|grep xxx软件列表 4.yum安装 ...
- crystalreport使用方法
使用: 打开CrystalReport官网下载页 目前最新版本为13.0.4 选择“SAP Crystal Reports, version for Visual Studio 2010 - Stan ...
- 用 tomcat 部署 Jenkins
在tomcat 下面部署 Jenkins 版本 tomcat (7.0.94) + jdk (7) + jenkins (2.46.3) 前两次没有部署成功,应该是 jdk 版本的问题, 如果不成功 ...
- .Net反射在项目中的应用
案例1:项目中可能有多个DAL程序集,每个程序集使用不同的持久化技术或对应不同类型的数据库,但是它们使用同一套接口. 可以在配置文件中配置DAL程序集名称,使用反射加载程序集.创建dal对象. 这样做 ...
- Excel-自定义单元格、填充柄
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析, 提取有用信息和形成结论而对数据加以详细研究和概括总结的过程. 工具:EXCEL,sql,SAS,SPSS,R,Python.Hadoop. ...
- ant design pro 的modal
通常弹框位置有限,如果一行不下,就拆成两行,例如Table
- q1096
一,看题 1,大概是每个点都来一次BFS标记下应该就可以. 2,你可以想想队列为啥pop()是l++; 3,还是字符你得注意下. 4,x,y,m,n,行列你得搞清楚. 5,这棋盘的破东西.. 6,额, ...
- Python——IO多路复用之select模块epoll方法
Python——IO多路复用之select模块epoll方法 使用epoll方法实现IO多路复用,使用方法基本与poll方法一致,epoll效率要高于select和poll. .├── epoll_c ...
- k均值聚类算法原理和(TensorFlow)实现
顾名思义,k均值聚类是一种对数据进行聚类的技术,即将数据分割成指定数量的几个类,揭示数据的内在性质及规律. 我们知道,在机器学习中,有三种不同的学习模式:监督学习.无监督学习和强化学习: 监督学习,也 ...
- iptables 自定义链
当默认链中的规则非常多时,不方便我们管理. 想象一下,如果INPUT链中存放了200条规则,这200条规则有针对httpd服务的,有针对sshd服务的,有针对私网IP的,有针对公网IP的,假如,我们突 ...