文档章节

java基础--异常处理

思悟修
 思悟修
发布于 2017/07/06 17:10
字数 468
阅读 41
收藏 0

一、异常概括

java 异常的体系架构如下所示:

 

Error

    不可恢复错误通常为虚拟机产生,处理与否不能恢复错误,其及子类都属于unchecked程序中不用显式捕获处理

RuntimeException

  运行期出现的异常,可以捕获处理回到正常流程,程序中可判定避免出现此异常,如:非空判定转正常流程,其及子类属于unchecked异常程序中不用显式捕获处理

Exception&非RuntimeException异常:

  此类异常在程序编译期前需要显示捕获处理,不然不能编译通过,Exception及子类中除RuntimeException(包含子类)之外的异常属于checked异常必须显式处理

二、异常使用

try{}catch(){}finally{}代码实例如下:

   public static int doys() throws Exception{//方法声明抛出checked异常
		int i=0;
        try {  
            return ((i++)/0); //产生unchecked异常,可捕获处理
        } catch (Exception e) {  
            System.out.println("catch:"+i);  
          
            throw new Exception("this is catch!");  //checked必须捕获或上抛,此处上抛
        } finally {  
            System.out.println("final:"+i);  
            return i+2; //正常退出方法
        }
	}
	
	public static void main(String[] args) {  
	        try {  
	            int a=doys();  
	            System.out.println("main:"+a);
	        } catch (Exception e) {  //必须捕获或上抛,此处捕获处理
                e.printStackTrace(); //doys方法由其finally return正常退出所有下面不执行
	        	System.out.println("this is main exception!");
	             
	        }  
	 } 

执行结果:

catch:1
final:1
main:3

执行描述:

finally程序块在try和catch块可执行部分执行完后执行,如果finally包含方法退出语句return或产生异常,那么try catch中的执行到的return 和异常会被执行但不能正常或异常退出方法,且不能上抛异常,由finally来来决定怎么退出,如return则正常退出,异常则异常退出;如果finally没有方法退出语句那么finally执行完后回到try catch退出点进行退出。

© 著作权归作者所有

思悟修
粉丝 5
博文 59
码字总数 43362
作品 0
杭州
私信 提问
你必须掌握的 21 个 Java 核心技术!(干货)

点击上方“java进阶架构师”,选择右上角“置顶公众号” 20大进阶架构专题每日送达 51闲来无事,师长一向不(没)喜(有)欢(钱)凑热闹,倒不如趁着这时候复盘复盘。而写这篇文章的目的是想...

Java进阶架构师
05/03
0
0
轻量级 Java 框架 - JOxygen

JOxygen 轻量级Java框架 介绍 一个轻量级Java框架 oxygen-core 核心部分 基于cglib的aop实现 提供缓存管理和基于注解的缓存,内置LocalCache和Ehcache实现,可扩展 配置管理,支持${attrs.k...

justlive1
2018/11/13
1K
0
justlive1/oxygen

oxygen 轻量级Java框架 介绍 一个轻量级Java框架 oxygen-core 核心部分 基于cglib的aop实现 提供缓存管理和基于注解的缓存,内置LocalCache和Ehcache实现,可扩展 配置管理,支持${attrs.key...

justlive1
2018/10/08
0
0
给Java新手的一些建议——Java知识点归纳(Java基础部分)

  写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,...

Java工程师-10
2017/05/24
739
2
你必须掌握的 21 个 Java 核心技术!

你必须掌握的 21 个 Java 核心技术! Java技术栈 2018-10-29 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,希望可以给大家一些经验,能让大家更好学习和使用Java。 ...

浮躁的码农
04/15
97
0

没有更多内容

加载失败,请刷新页面

加载更多

Java中垃圾回收的方法有哪些?

引数计数法 应用于:微软的COM/ActionScrip3/Python等 对象没有被引用就会被回收,缺点是需要维护一个引用计算器 复制算法 年轻代中使用的Minor GC。 a.效率高,缺点:需要内存容量大,比较耗...

DustinChan
37分钟前
4
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
39分钟前
6
0
初识Java

Java语言的优势: 1、跨平台(所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。主要是由jvm所决定) 2.、面向对象(用老师的一句话“一切皆对象”后面会用详细...

Carina_猪
昨天
5
0
Java描述设计模式(09):装饰模式

本文源码:GitHub·点这里 || GitEE·点这里 一、生活场景 1、场景描述 孙悟空有七十二般变化,他的每一种变化都给他带来一种附加的本领。他变成鱼儿时,就可以到水里游泳;他变成鸟儿时,就...

知了一笑
昨天
4
0
聊聊nacos的HttpHealthCheckProcessor

序 本文主要研究一下nacos的HttpHealthCheckProcessor HealthCheckProcessor nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HealthCheckProcessor.java public in......

go4it
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部