21、捕捉异常和异常的使用原则

package com.exception.demo;

public class Take {    // 创建类

    /**
     * 1、捕捉异常( 异常处理器大致分为 try-catch 语句快 和 finally 语句块 )
     * 2、以下4种情况不会执行finall语句块
     *   2.1、在finally语句块发生了异常
     *   2.2、在前面的代码中使用了 System.exit() 退出程序
     *   2.3、程序所在的线程死亡
     *   2.4、关闭CPU
     * 3、异常的使用原则:
     *    1.在当前方法中使用 try - catch 语句捕获异常
     *    2.一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子类
     *    3.如果父类抛出多个异常,则覆盖方法必须抛出那些异常的一个子集,不能抛出新异常
     * @param args
     */

    public static void main(String[] args) {
        // 捕捉异常
        try {    // try 语句块中包含可能出现异常的程序代码
            String str = "lili"; //定义字符串变量
            System.out.println(str+"年龄是:"); //输出信息
            int age = Integer.parseInt("20L");    //数据类型转换
            System.out.println(age);
        } catch (Exception e) {    // catch 语句块用来获取异常信息
            e.printStackTrace();    // 输出异常性质
        }finally{    // 不管发生什么异常,都会执行
            System.out.println("不管发生什么异常,都会执行");
        }
        System.out.println("program over");

    }
}
时间: 2024-08-28 08:34:06

21、捕捉异常和异常的使用原则的相关文章

bcb 如何在DLL中捕捉系统级异常

http://topic.csdn.net/t/20031023/09/2385627.html -------------------------------------------------- 我创建了一个动态库,库中实现了对Socket(TCP.UDP)的封装,其中使用了BCB的TClientSocket,当使用该ClientSocket去连接一个并不存在的服务器时必然导致会ESocketError异常.问题:我该如何捕捉到该异常? 如下代码明显不行,请哪位高手帮帮忙!!!!!!!!!!

(4.3)uboot详解——异常和异常向量

(4.3)uboot详解--异常和异常向量 中断是一个较难掌握知识,因为它是一个过程,而不是一个结果,其中的步骤都建立在理论的层面上,需要理解.比如按下按键1会使led1亮,这个"起因-结果"的操作我想小孩子也能掌握,因为它是一个现象,但是要掌握"起因-过程-结果"却需要花一些功夫,因为这个过程需要理解.如果你认真的了解了前面两节的内容,那么现在就该到了实现"过程"的时候了. 前面两节分析了外部中断和内部中断相关的内容,这篇文章将对处理器的异常情

java异常和异常体系

16.异常 16.1程序执行过程中出现的影响程序正常运行的现象. 16.2异常语法 try{ //代码块 }catch(异常类型 e){ }catch(异常类型2 e2){ }...{ }finally{ } 注意:try:表示可能出现异常的代码块 catch:抓取异常 ,并进行处理 可以抓取多个异常,异常的范围要从小到大抓取 并且只会执行第一个匹配的异常类型 finally:最终的,不管是否出现异常,finally中的代码块始终会执行. 除虚拟机停止(system.exit(1))这种情况外

C++异常之异常说明

1. 指定异常 T   funNname( parameterlist ) throw( T1, T2,····,Tn): 其中 T 是类型, parameterlist 是参数列表, 而类型 T1, T2,····,Tn 是函数会抛出的异常. 2. 不抛出异常 T   funNname( parameterlist ) throw( ): 抛出异常类型列表为空,表示的是该函数不抛出任何类型异常. 3. 抛出任意类型的异常 T   funNname( parameterlist ): 这表示该函

C++异常以及异常与析构函数

1. 抛出异常 1.1 抛出异常(也称为抛弃异常)即检测是否产生异常,在C++中,其采用throw语句来实现,如果检测到产生异常,则抛出异常. 该语句的格式为: throw 表达式; 如果在try语句块的程序段中(包括在其中调用的函数)发现了异常,且抛弃了该异常,则这个异常就可以被try语句块后的某个catch语句所捕获并处理,捕获和处理的条件是被抛弃的异常的类型与catch语句的异常类型相匹配.由于C++使用数据类型来区分不同的异常,因此在判断异常时,throw语句中的表达式的值就没有实际意义

异常——获取异常信息

当出现异常时大家都经常会想查看异常的详细信息,什么异常,异常出现在什么位置等等. 在日常的编程中,printStackTrace是一个经常被用的方法,这个方法把异常的详细信息输出到了控制台上. 但是有一些时候我们想要把这些详细的信息以其他的方式展现,网页上.日志里.报警邮件中. Exception本身的toString,getMessage方法只是对该Exception类的本身信息,并不能帮我们找出异常点. 那么就从printStackTrace着手,将这个方法要输出的信息放到一个String里

VS 尝试从数据库进行更新时,遇到类型为“Microsoft.VSDesigner.Data.Local.ConnectionStringConverterServiceException”的异常。异常消息为:“”;

最近,由于更换机器,在新机器上运行更新数据库模型,报错: 尝试从数据库进行更新时,遇到类型为"Microsoft.VSDesigner.Data.Local.ConnectionStringConverterServiceException"的异常.异常消息为:""; 这样的错误一般都是进行Edmx 从数据库中更新到模型产生的,错误截图如图: 我用的是VS2012,数据库为MySQL 解决方案一: 找到自己的Entities.edmx文件,检查ConnectionS

异常及异常的处理机制

异常处理机制 异常和异常处理机制 异常的概念: 程序在运行时,发生了不可预测的事件,它阻止了程序按照我们程序员的预期 正常执行! 程序中的异常:   那么,我们剩下的5行代码九部会执行了 那么什么是异常的处理机制呢? 能让程序在异常发生时,按照代码预先设定的异常处理逻辑,针对性地处理异常,     让程序恢复正常并继续执行. 异常的分类和结构图 所有的异常错误和错误的父类=======>Throwtable   Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable

Python档案袋(异常与异常捕获 )

无异常捕获 程序遇到异常会中断 print( xxx ) print("---- 完 -----") 得到结果为: 有异常捕获 程序遇到异常会进入异常处理,并继续执行下面程序 try: print( xxx ) except NameError as e: print("出现错误",e) print("---- 完 -----") 抓住所有异常 try: print(xx) except Exception as e: print("-