黑马程序员: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. [转]Bat脚本处理ftp超强案例解说

    Bat脚本处理ftp超强案例解说 转自:http://369369.blog.51cto.com/319630/842341   前言:   公司有几百台windows服务器,每次程序更新,如果是一台 ...

  2. Microsoft.Office.Interop.Excel操作Excel文件时出现的问题及解决方案

    问题描述: Microsoft.Office.Interop.Excel.Worksheet 打不开文件 Microsoft Office Excel 不能访问文件"a.xls". ...

  3. PHPCMS开启伪静态和织梦开启伪静态的优缺点比较

    PHPCMS和织梦CMS都是国内比较出名的PHP语言的CMS程序系统,他们拥有比较完善的网站内容管理功能,也比较注重网站优化方面的功能,深受很多网站建设者的喜爱. 这两套系统,都有启用伪静态的功能,在 ...

  4. 5、HTML5列表、块和布局

    1.块元素 块元素在显示的时候,通常会以新行开始 如:<h1> <p> <ul> <!-- 块—>注释 <p>hello</p> ...

  5. Yii2.0 rules验证规则大全

    required : 必须值验证属性 [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; #说明:CRequiredV ...

  6. C++与C的关系

     C是结构化和模块化的语言,是基于过程的.        C++是面向对象的程序设计语言.        C++是C的超集,对C的功能做了扩充,增加了面向对象的机制.        C++包含头文件的 ...

  7. Provisioning Services 7.6 入门到精通系列之一:PVS前期规划

    1.  Provisioning Services 产品概述 Provisioning Services (简称PVS)采用了一种与传统映像解决方案截然不同的方法,从根本上改变了硬件与依托硬件而运行的 ...

  8. javascript 手势缩放 旋转 拖动支持:hammer.js

    原文: https://cdn.rawgit.com/hammerjs/hammer.js/master/tests/manual/visual.html /*! Hammer.JS - v2.0.4 ...

  9. 1526. Martian Plates

    http://acm.timus.ru/problem.aspx?space=1&num=1526 题目大意: 可以从n个碟子中任选一个放在桌子上(不断往上放),也可以把桌子上最顶端的盘子拿走 ...

  10. 《JavaScript高级程序设计》读书笔记--(4)对象的创建

    ECMAScript支持面向对象(OO)编程,但不使用类或者接口.对象可以在代码执行过程中创建或增强,因此具有动态性而非严格定义的实体.在没有类的情况下,可以采用下列模式创建对象. 对象的创建 工厂模 ...