黑马程序员: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异常的更多相关文章

  1. 浅谈java异常[Exception]

    学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java! 一. 异常的定义 在<java编程思想 ...

  2. 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?

    本文转载自  java 异常捕捉 ( try catch finally ) 你真的掌握了吗? 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理 ...

  3. Java异常体系及分类

    上图是基本的java异常体系结构. 主要分为2大类:Error和Exception 1.Error:描述了Java运行系统中的内部错误以及资源耗尽的情形.应用程序不应该抛出这种类型的对象,一般是由虚拟 ...

  4. Java异常之自定义异常

    哎呀,妈呀,又出异常了!俗话说:"代码虐我千百遍,我待代码如初恋". 小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常.Java异 ...

  5. 第11章 Java异常与异常处理

    1.Java异常简介 1.什么是异常异常出现的时候代码会无法正常运行下去,会产生各种问题2.捕捉异常的作用提早发现异常,方便查找问题,并给出解决方法3.Java中的异常1.Java中所有不正常的类都是 ...

  6. java 异常

    1.java异常 2.自定义抛出 3.运行时异常,程序有问题,让使用者可以改' ' 4.return  和  throw的区别 return 符合函数要求的值    throw  有问题的时候用它结束 ...

  7. 3.Java异常进阶

    3.JAVA异常进阶 1.Run函数中抛出的异常 1.run函数不会抛出异常 2.run函数的异常会交给UncaughtExceptionhandler处理 3.默认的UncaughtExceptio ...

  8. 2.Java异常学习

    1.Java异常的概念 异常的例子 1.除法就是一个需要捕获异常的例子,除数又可能是0 异常处理的基本流程如下 一旦发生异常,就使得程序不按照原来的流程继续的运行下去 a.程序抛出异常 try{ th ...

  9. java异常架构图 和几个面试题

    1.java异常架构图 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被 ...

随机推荐

  1. android事件拦截处理机制详解

    前段时间刚接触过Android手机开发,对它的事件传播机制不是很了解,虽然网上也查了相关的资料,但是总觉得理解模模糊糊,似是而非,于是自己就写个小demo测试了一下.总算搞明白了它的具体机制.写下自己 ...

  2. Linux小知识积累

    1.Linux图形界面和字符命令行界面的切换 从图形界面切换到字符界面,使用快捷键 Ctrl+Alt+F1 从字符界面切换到图形界面,使用快捷键 Ctrl+Alt+F7 2.解压文件 tar -xzv ...

  3. Selenium的延迟等待

    http://my.oschina.net/u/928852/blog/98885 Selenium的延迟等待分为 显式等待(Explicit Wait) & 隐式等待(Implicit Wa ...

  4. UIImagePickerController和UIAlertController结合使用

    在处理个人资料 - 头像的时候,通常有两个选项,一个是调用系统相机,一个是调用系统相册.这里要使用的就是UIImagePickerController方法. 在头像位置的imageView添加一个手势 ...

  5. MD5使用

    MD5加密算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著 ...

  6. OC基础--构造方法 id类型

    new方法实现原理: new做了三件事情 1.开辟存储空间  + alloc 方法 2.初始化所有的属性(成员变量) - init 方法 3.返回对象的地址 [Person new]; == [[Pe ...

  7. AtCoder Grand Contest 6

    A - Prefix and Suffix 题意:输入一个整形变量n和两个字符串s,t,使用一些规则求满足条件的最短字符串的长度:规则如下:这个最短字符串的长度不能小于n:它的前n个字符必须与s相同: ...

  8. 构造函数,const char*与c_str

    /******************************************************************************* * 版权所有: * 模 块 名: * ...

  9. AngularJs的UI组件ui-Bootstrap分享(十一)——Typeahead

    Typeahead指令是一个用于智能提示或自动完成的控件,就像Jquery的AutoComplete控件一样.来看一个最简单的例子: <!DOCTYPE html> <html ng ...

  10. NPOI 2.0 读取、编辑、保存Excel文件

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...