黑马----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子句声明.受检查的异常必须在编译时被 ...
随机推荐
- 我的毕业设计——基于安卓和.NET的笔记本电脑远程控制系统
手机端: 电脑端: 答辩完成后会开放代码.
- github改local用户名和email
github改local用户名和email 进入cd ~/.ssh 修改git config --global user.name “用户名” config --global user.email 电 ...
- 一些css知识
两个"::"和一个":"在css3中主要用来区分伪类和伪元素. 1.设置 placeholder属性: // firefox input::-moz-place ...
- EF6 CodeFirst 实践系列文章列表
2015 Jul.16 EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(一) 来自:wangweimutou 本系列源自对EF6 CodeFirst的探索 ...
- Thymeleaf+SpringMVC,如何从模板中获取数据
Thymeleaf+SpringMVC,如何从模板中获取数据 在一个典型的SpringMVC应用中,带@Controller注解的类负责准备数据模型Map的数据和选择一个视图进行渲染.这个模型Map对 ...
- js正则表达式大全(4)
正则表达式在javascript中的几个实例1(转) ! 去除字符串两端空格的处理 如果采用传统的方式,就要可能就要采用下面的方式了 //清除左边空格 function js_ltrim(destst ...
- winform学习笔记-文档路径
获取应用程序路径 //获取当前进程的完整路径,包含文件名(进程名).string str = this.GetType().Assembly.Location;result: X:\xxx\xxx\x ...
- kendo模板 Uncaught Error: Invalid template:' 报错
I was having a problem with a grid toolbar template because of a # in a hrefWorked out that I needed ...
- RSA大会播报 – 2014最佳安全博客提名(国外篇)
最佳企业安全博客提名: Juniper(网络厂商,不用多介绍):http://forums.juniper.net/t5/Security-Mobility-Now/bg-p/networki ...
- DIV的不能包住子集解决办法
在div的样式中加上:overflow:hidden,或者float:left或right