黑马----JAVA异常
黑马程序员:Java培训、Android培训、iOS培训、.Net培训
黑马程序员--JAVA异常
一、JAVA异常有三种语句块:try语句块、catch语句块、finally语句块。
1、try语句块:在抛出异常后中断执行。
2、catch语句块:在捕获相应异常后执行。
3、finally语句块:始终执行,不管是否有异常。
二、抛出异常的三种形式
1、系统自动抛出异常,例如下面语句
int a = 3, b = 0;
int c = a / b;
2、语句抛出异常:thow 异常对象
用于程序出现某种逻辑时,程序员自动抛出异常等。
if(……){
…….
thow new ExceptionType;
…….
}
3、方法抛出异常:thows 异常类型
用来声明方法抛出某种异常,这种异常该方法不会处理,而是提交给调用该方法的上一级进行处理。
Public int method() throws ExceptionType{
…….
}
三、含有return的执行顺序
(1)有表达式A…..G
(2)每个方法都有唯一一块临时的返回值存储块S。
(3)下面只讨论有异常的执行顺序
1)try{
A;
}catch(){
B;
}finally{
C
}
return D;
//顺序执行A,B,C,D
2)try{
A;
return B;
}catch(){
C;
}finally{
D
}
//执行顺序
A,B,将B的结果存放到S,C,D,try块的return
3)try{
A;
}catch(){
B;
return C;
}finally{
D;
}
//执行顺序
A, B, C, 将C的结果保存到S,D, catch块的return
4)try{
A;
}catch(){
B;
}finally{
return C;
}
//执行顺序
A, B, C, 将C的结果保存到S,finally块的return
5)try{
A;
return B;
}catch(){
C;
return D;
}finally{
E;
}
//执行顺序
A, B, 将B的结果保存到S,C, D, 将D的结果保存到S,E, catch块的return
6)try{
A;
return B;
}catch(){
C;
}finally{
D;
return E;
}
//执行顺序
A, B, 将B的结果保存到S,C, D, E, 将E的结果保存到S,finally块的return
7)try{
A;
return B;
}catch(){
C;
return D;
}finally{
E;
return F;
}
//执行顺序
A, B, 将B的结果保存到S,C, D, 将D的结果保存到S, E, F, 将F的结果保存到S, finally块的return
(4) 从上面的执行顺序可看出:catch语句块和finally语句块是在函数返回上一级前执行。同时,如果finally中含有return,则函数不会返回try语句块或catch语句块中保存的返回值,因此,最后finally语句块中最好不使用return。
黑马----JAVA异常的更多相关文章
- 浅谈java异常[Exception]
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java! 一. 异常的定义 在<java编程思想 ...
- 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
本文转载自 java 异常捕捉 ( try catch finally ) 你真的掌握了吗? 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理 ...
- Java异常体系及分类
上图是基本的java异常体系结构. 主要分为2大类:Error和Exception 1.Error:描述了Java运行系统中的内部错误以及资源耗尽的情形.应用程序不应该抛出这种类型的对象,一般是由虚拟 ...
- Java异常之自定义异常
哎呀,妈呀,又出异常了!俗话说:"代码虐我千百遍,我待代码如初恋". 小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常.Java异 ...
- 第11章 Java异常与异常处理
1.Java异常简介 1.什么是异常异常出现的时候代码会无法正常运行下去,会产生各种问题2.捕捉异常的作用提早发现异常,方便查找问题,并给出解决方法3.Java中的异常1.Java中所有不正常的类都是 ...
- java 异常
1.java异常 2.自定义抛出 3.运行时异常,程序有问题,让使用者可以改' ' 4.return 和 throw的区别 return 符合函数要求的值 throw 有问题的时候用它结束 ...
- 3.Java异常进阶
3.JAVA异常进阶 1.Run函数中抛出的异常 1.run函数不会抛出异常 2.run函数的异常会交给UncaughtExceptionhandler处理 3.默认的UncaughtExceptio ...
- 2.Java异常学习
1.Java异常的概念 异常的例子 1.除法就是一个需要捕获异常的例子,除数又可能是0 异常处理的基本流程如下 一旦发生异常,就使得程序不按照原来的流程继续的运行下去 a.程序抛出异常 try{ th ...
- java异常架构图 和几个面试题
1.java异常架构图 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被 ...
随机推荐
- MySql 获取当前节点及递归所有上级节点
-- MySql 获取当前节点及递归所有上级节点 -- 参数说明:resultField:查询返回字段,idd 要查询的资源ID值,idFieldName ID字段名,parentIdFieldNam ...
- Windows下配置nginx+php(wnmp)
第一部分:准备工作.(系统:Windows 8.1) 1.首先是下载软件. NGINX-1.3.8官网下载:http://nginx.org/en/download.html PHP5.4.8版本 ...
- hadoop3.0 alpha1 安装配置
1. 官网下载 wget http://apache.fayea.com/hadoop/common/hadoop-3.0.0-alpha1/hadoop-3.0.0-alpha1.tar.gz 2 ...
- XmlHelper
获取XML节点的值(http服务使用xml传输数据,节点名称唯一) /// <summary> /// 获取xml节点的值 /// </summary> /// <par ...
- Go语言开发环境配置
一.我为什么要学习go语言 当今已经是移动和云计算时代,Go出现在了工业向云计算转型的时刻,简单.高效.内 置并发原语和现代的标准库让Go语言尤其适合云端软件开发(毕竟它就是为此而设计的).到2014 ...
- android studio 导入一个已有的android studio project作为lib使用
android studio 导入一个已有的android studio project作为lib使用 新项目来了. 需要搭建框架. android studio对我来说还是很陌生,之前一个项目在同事 ...
- WPS for Linux(ubuntu)字体配置(字体缺失解决办法)
启动WPS for Linux后,出现提示"系统缺失字体" . 出现提示的原因是因为WPS for Linux没有自带windows的字体,只要在Linux系统中加载字体即可. 具 ...
- 字符编码和python .encode().decode()方法
字符编码与encode.decode的问题: 用8个开关表示世界万物 ASCII : American Standard Code for Information Interchange,美国 ...
- Matlab_Graphics(1)_2D
1.Add title ,axis Lables, and Legend to Graph: x=linspace(-*pi,2pi,); y1=sin(x); y2=cos(x); figure p ...
- JAVA第四周作业
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream; ...