Java异常处理机制:try...catch...的执行流程

在项目中遇到try...catch...语句,因为对Java异常处理机制的流程不是很清楚,导致对相关逻辑代码不理解。所以现在来总结Java异常处理机制的处理流程:

1.异常处理的机制如下:

在方法中用 try... catch... 语句捕获并处理异常,catch 语句可以有多个,用来匹配多个不同类型的异常。

对于处理不了的异常或者要转型的异常,在方法的声明处通过 throws 声明异常,通过throw语句拋出异常,即由上层的调用方法来处理该异常。

try {

逻辑程序块

} catch(ExceptionType1 e) {

处理代码块1

} catch (ExceptionType2 e) {

处理代码块2

throw(e); // 再抛出这个"异常"

}

注:如果有异常发生,只会进入到一个catch语句块中

2.Exception 是程序正常运行过程中可以预料到的意外情况,并且应该被开发者捕获,进行相应的处理。

Exception 可以以两种方式出现:

一是发生在程序编译时或运行时发生异常,是被程序抛出,用户没有主动抛出异常;

二是用户主动抛出异常,使用throw关键字主动抛出异常。该异常可以是业务逻辑的异常。

try {

// 可能发生异常的语句

} catch(ExceptionType e) {

// 处理异常语句

}

3.执行流程

try语句块中发生了异常

如果try语句块中发生了异常,那么程序就会把对应的异常对象抛出,然后catch语句就会捕获该异常并且处理。

注意:如在try语句块的第二句语句发生异常,那么在第二句以后的语句都不会执行了,转到catch语句块中开始执行。处理完catch语句块的内容,就会执行catch语句块之后的内容

try语句块中没有发生异常

如果try语句块中没有发生异常,那么try语句块中的内容会由上到下依次执行,然后catch语句块会全部被跳过,接下来执行catch语句块之后的内容。

举个栗子:

public class ExceptionTest {

public static void main(String[] args) {

for (int i = 0; i < 3; i++) {

String message = "";

int a = 0;

try{

if (i == 1){

throw new Exception("错误");

}

message = "正确";

a= 123;

}catch (Exception e){

message = e.getMessage();

}

System.out.println( "i 等于" + i);

System.out.println(message );

System.out.println("a = " + a+ "

");

}

}

}

输出结果分析:

当有i = 2时,用户主动抛出异常,可以看到为 message, a 的赋值语句没有执行, 进入到catch语句块中,然后再执行catch语句块以后的内容

message = "错误"

a = 0

输出结果

i 等于0

正确

a = 123

i 等于1

正确

a = 123

i 等于2

错误

a = 0

java+catch块不执行_Java异常处理机制:try...catch...的执行流程相关推荐

  1. java 抛异常给上级_java异常处理机制(示例代码)

    Exception 类的层次 java中所有的异常类是从 java.lang.Exception 类继承的子类. 而Exception 类是 Throwable (可抛出的)类的子类.除了Except ...

  2. ajax异步执行调用什么机制,大白话讲解JavaScript 执行机制,一看就懂

    JavaScript的运行机制 1.JavaScript为什么是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事.那么,为什么JavaScript不能有多个线程 ...

  3. java 抛出异常效率_Java异常处理机制

    与C++.python,Ruby一样,Java也有一个异常处理机制,当程序出现异常时,系统会自动生成一个Exception对象通知程序去处理.之所以这样设计目的在于使程序有更好的容错性和可读性,实现业 ...

  4. java异常应用_Java异常处理机制 —— 深入理解与开发应用

    本文为原创博文,转载请注明出处,侵权必究! Java异常处理机制在日常开发中应用频繁,其最主要的不外乎几个关键字:try.catch.finally.throw.throws,以及各种各样的Excep ...

  5. java的异常处理块的形式_Java 异常处理详细解读

    异常(Exception)指的是所有可能造成计算机无法正常处理的情况.发生异常时,将阻止程序的运行,若不妥善处理异常,可能造成计算机死机.经过异常处理,可以保证程序的正常运行,我们把针对不同的异常做妥 ...

  6. java异常处理代码详解_Java异常处理机制总结

    概念介绍 异常是发生在程序执行过程中阻碍程序正常执行的错误事件,当一个程序出现错误时,可能的情况有如下3种: 语法错误 代码的格式错了,某个字母输错了 运行时错误 空指针异常,数组越界,除数为零等 逻 ...

  7. java 异常管理员_Java异常处理机制

    Java 中的异常(Exception)又称为例外,是一个在程序执行期间发生的事件,它中断正在执行的程序的正常指令流.为了能够及时有效地处理程序中的运行错误,必须使用异常类. 一.异常简介 在程序中, ...

  8. java怎么碰到异常跳过继续执行_Java异常处理很难吗?BAT大厂的架构师是怎么处理Java异常的?...

    欢迎关注专栏<Java架构筑基>--专注于Java技术的研究与分享! Java架构筑基​zhuanlan.zhihu.com Java架构筑基--专注于Java技术的研究与分享! 后续文章 ...

  9. java异常详细讲解_Java异常处理机制的详细讲解和使用技巧

    一起学习 1. 异常机制 1.1 异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器. 1.2 ...

  10. 黑马程序员_java异常处理机制

    java异常处理机制 1:什么是异常? 异常(Exception)也叫例外.在Java编程语言中,异常就是程序在运行过程中由于硬件设备问题.软件设计错误.缺陷等导致的程序错误.在软件开发过程中,很多情 ...

最新文章

  1. Ubuntu 14.04 64bit上编译安装simple-rtmp-server(srs)服务器
  2. 【Python】Python中*args 和**kwargs的用法
  3. dpkg ---- apt-get ------ aptitude 三种方式的区别 及命令格式
  4. 【1024】不整虚的,红包以备,致敬一线同僚!
  5. UVa573 The Snail
  6. Android 开发工具类 36_ getSimSerial
  7. python网络编程库_python网络编程学习笔记(9):数据库客户端
  8. 基于Semtech LoRa SX1268 电路设计及PCB布局
  9. SSH服务-SSH秘钥对登陆
  10. 全国dns服务器地址
  11. 37.django基础概念
  12. python 遍历_python dict 两种遍历方式的比较
  13. JDK下载 JVM调优工具jvisualvm下载
  14. Shader+UGUI仿制Unity拾色器
  15. 现代操作系统 第一章 引论
  16. 腾讯/京东/网易校招笔试刷人超70%,这份笔试自救指南请收好
  17. 计算机win10无法打开小键盘,小编告诉你win10开机小键盘不自动开启的解决伎俩...
  18. 《活出生命的意义》读后感
  19. 倍福ADS通讯(三)——ADS通讯协议包格式
  20. File “/etc/oratab“ is not accessible.

热门文章

  1. access 跳过一次for循环_Java中的循环结构
  2. python编程工时计算_python 两个时间段过滤求交集(工时计算)
  3. Javascript特效:循环抽奖
  4. 电子邮件是html文件吗,如何在电子邮件正文中嵌入HTML文件
  5. Java怎么按照字母对单词排序_将一段字符串文本中的每个单词提取出来后按照字母顺序排序...
  6. SLAM++:面向对象的同时定位与建图系统(2013-CVPR)
  7. CVPR2018论文阅读-Faster MPN-COV:迭代计算矩阵平方根以快速训练全局协方差池化
  8. 关于embedding的理解,2020-7-30
  9. JDBC的那点事之DatabaseMetaData之获取数据库所有表
  10. 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1](简单易懂)