黑马----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子句声明.受检查的异常必须在编译时被 ...
随机推荐
- [转]Bat脚本处理ftp超强案例解说
Bat脚本处理ftp超强案例解说 转自:http://369369.blog.51cto.com/319630/842341 前言: 公司有几百台windows服务器,每次程序更新,如果是一台 ...
- Microsoft.Office.Interop.Excel操作Excel文件时出现的问题及解决方案
问题描述: Microsoft.Office.Interop.Excel.Worksheet 打不开文件 Microsoft Office Excel 不能访问文件"a.xls". ...
- PHPCMS开启伪静态和织梦开启伪静态的优缺点比较
PHPCMS和织梦CMS都是国内比较出名的PHP语言的CMS程序系统,他们拥有比较完善的网站内容管理功能,也比较注重网站优化方面的功能,深受很多网站建设者的喜爱. 这两套系统,都有启用伪静态的功能,在 ...
- 5、HTML5列表、块和布局
1.块元素 块元素在显示的时候,通常会以新行开始 如:<h1> <p> <ul> <!-- 块—>注释 <p>hello</p> ...
- Yii2.0 rules验证规则大全
required : 必须值验证属性 [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; #说明:CRequiredV ...
- C++与C的关系
C是结构化和模块化的语言,是基于过程的. C++是面向对象的程序设计语言. C++是C的超集,对C的功能做了扩充,增加了面向对象的机制. C++包含头文件的 ...
- Provisioning Services 7.6 入门到精通系列之一:PVS前期规划
1. Provisioning Services 产品概述 Provisioning Services (简称PVS)采用了一种与传统映像解决方案截然不同的方法,从根本上改变了硬件与依托硬件而运行的 ...
- javascript 手势缩放 旋转 拖动支持:hammer.js
原文: https://cdn.rawgit.com/hammerjs/hammer.js/master/tests/manual/visual.html /*! Hammer.JS - v2.0.4 ...
- 1526. Martian Plates
http://acm.timus.ru/problem.aspx?space=1&num=1526 题目大意: 可以从n个碟子中任选一个放在桌子上(不断往上放),也可以把桌子上最顶端的盘子拿走 ...
- 《JavaScript高级程序设计》读书笔记--(4)对象的创建
ECMAScript支持面向对象(OO)编程,但不使用类或者接口.对象可以在代码执行过程中创建或增强,因此具有动态性而非严格定义的实体.在没有类的情况下,可以采用下列模式创建对象. 对象的创建 工厂模 ...