java-异常概述及体系

1 package p1.exception;
2
3
4 /*
5 * 异常:是在运行时期发生的不正常情况。
6 *
7 *
8 * 在java中用类的形式对不正常情况进行了描述和封装对象。
9 *
10 * 描述不正常的情况的类,就称为异常类。
11 *
12 * 以前正常流程代码和问题处理代码相结合,
13 * 现在将正常流程代码和问题处理代码分离。提高阅读性
14 *
15 * 其实异常就是java通过面向对象的思想将问题封装成了对象
16 *
17 * 用异常类对其进行描述。
18 * 不同的问题用不同的类进行具体的描述。比如角标越界。空指针等等
19 *
20 * 问题很多,意味着描述的类也很多。
21 * 将其共性向上抽取,形成了异常体系。
22 *
23 * 最终问题(不正常情况)就分成了两大类。
24 * Throwable:无论是error,还是异常,问题发生就应该可以抛出,让调用者知道并处理
25 * //该体系的特点就在于Throwable及其所有的子类都具有可抛性。
26 * 可抛性到底指的是什么呢?怎么体现可抛性呢?
27 * 其实是通过两个关键字来体现的。
28 * throws throw,凡是可以被这两个关键字所操作的类和对象都具备可抛性。
29 * |--1,一般不可处理的。Error类
30 * 特点:是由jvm抛出的严重性的问题。
31 * 这种问题发生一般不针对性处理。直接修改程序
32 * |--2,可以处理的。Exception类
33 *
34 * 该体系的特点:
35 * 子类的后缀名都是用其父类名作为后缀,阅读性很强。
36 *
37 *
38 *
39 *
40 */
41 public class ExceptionDemo {
42
43 public static void main(String[] args) {
44 // TODO Auto-generated method stub
45 int[] arr = new int[1024*1024*800];//java.lang.OutOfMemoryError: Java heap space
46 arr = null;
47 System.out.println(arr[3]);
48 sleep(-5);
49 }
50
51 /*public static void sleep1(int time) {
52 if (time<0) {
53 new FuTime();//就代表着时间为负的情况,这个对象中会包含着问题的名称,位置等信息
54 // 处理办法
55 // 处理办法
56 // 处理办法
57 }
58 if (time>100000) {
59 new BigTime();
60 // 处理办法
61 // 处理办法
62 // 处理办法
63 }
64 System.out.println("我睡。。。"+time);
65 }*/
66
67 public static void sleep(int time) {
68 if (time<0) {
69 // /*抛出*/ new FuTime();//就代表着时间为负的情况,这个对象中会包含着问题的名称,位置等信息
70
71 }
72 if (time>100000) {
73 // /*抛出*/ new BigTime();//对象要具有可抛性才能抛出
74
75 }
76 System.out.println("我睡。。。"+time);
77 }
78 }
79 /*
80 * class FuTime{
81 *
82 * }
83 * class BigTime{
84 *
85 * }
86 */
ExceptionDemo
java-异常概述及体系的更多相关文章
- Java异常体系概述
Java的异常体系结构 Java异常体系的根类是 Throwable, 所以当写在java代码中写throw抛出异常时,后面跟的对象必然是Throwable或其子类的对象. 其中Exception异常 ...
- Java基础系列5:深入理解Java异常体系
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 前言: Java的基 ...
- Java——深入理解Java异常体系
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 前言: Java的基 ...
- Java 异常(一) 异常概述及其架构
Java 异常(一) 异常概述及其架构 一.异常概述 (一).概述 Java异常是Java提供的一种识别及响应错误的一致性机制.异常指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常 ...
- Java 异常体系(美团面试)
Java把异常作为一种类,当做对象来处理.所有异常类的基类是Throwable类,两大子类分别是Error和Exception. 系统错误由Java虚拟机抛出,用Error类表示.Error类描述的是 ...
- java(异常体系及权限修饰符)
java异常体系 异常的体系: 异常体系: --------| Throwable 所有错误或者异常的父类 --------------| Error(错误) --------------| Exce ...
- java 异常体系详细介绍
一.异常概述与异常体系结构 异常:在Java语言中,将程序执行中发生的不正常情况称为"异常".(开发过程中的语法错误和逻辑错误不是异常). Java把异常当作对象来处理,并定义一个 ...
- Java异常体系及分类
上图是基本的java异常体系结构. 主要分为2大类:Error和Exception 1.Error:描述了Java运行系统中的内部错误以及资源耗尽的情形.应用程序不应该抛出这种类型的对象,一般是由虚拟 ...
- Java异常体系简析
最近在阅读<Java编程思想>的时候看到了书中对异常的描述,结合自己阅读源码经历,谈谈自己对异常的理解.首先记住下面两句话: 除非你能解决这个异常,否则不要捕获它,如果打算记录错误消息,那 ...
- Java集合概述、Set集合(HashSet类、LinkedHashSet类、TreeSet类、EnumSet类)
Java集合概述.Set集合(HashSet类.LinkedHashSet类.TreeSet类.EnumSet类) 1.Java集合概述1)数组可以保存多个对象,但数组长度不可变,一旦在初始化数组时指 ...
随机推荐
- ubuntu下载源码clang + llvm+lldb 编译+安装
[本文可能涉及到Ubuntu安装以下工具:] A.g++ B.gcc C.make D.cmake E.clang(10.0.1)(必须) F.llvm(10.0.1)(必须) G.lldb(10.0 ...
- 【LeetCode】244. Shortest Word Distance II 解题报告 (C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典保存出现位置 日期 题目地址:https://le ...
- 【LeetCode】951. Flip Equivalent Binary Trees 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 日期 题目地址:https://leetcod ...
- 【LeetCode】303. Range Sum Query - Immutable 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 保存累积和 日期 题目地址:https://leetcode. ...
- 【LeetCode】732. My Calendar III解题报告
[LeetCode]732. My Calendar III解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/my-calendar ...
- 食物链(poj1182)
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 57387 Accepted: 16781 Description ...
- Docker 与 K8S学习笔记(六)—— 容器的资源限制
我们在启动Docker容器时,默认情况下容器所使用的资源是没有限制的,这样就会存在部分特别耗资源的容器会占用大量系统资源,从而导致其他容器甚至整个服务器性能降低,为此,Docker提供了一系列参数方便 ...
- Java面向对象笔记 • 【第3章 继承与多态】
全部章节 >>>> 本章目录 3.1 包 3.1.1 自定义包 3.1.2 包的导入 3.1.3 包的访问权限 3.1.4 实践练习 3.2 继承 3.2.1 继承概述 3 ...
- WPF使用字体图标
首先我们要有字体文件,可以去阿里巴巴矢量图标库下载,下载解压后可以看到如下文件: 其中,iconfont.ttf就是字体文件,我们将该文件引入到自己的项目中,将iconfont.ttf文件的属性中&q ...
- GeoWave实践2:使用命令行将本地矢量数据注入hbase并发布至GeoServer
目录 步骤 补充 步骤 在GeoWave所在的节点打开两个会话窗口. 会话1 //运行GeoServer,默认端口8080 geowave gs run 会话2 //为GeoWave创建数据库Test ...