java 异常二、

* 编译时异常的抛出必须对其进行处理

* 运行时异常的抛出可以处理也可以不处理

throws和throw的区别
* a:throws
* 用在方法声明后面,跟的是异常类名
* 可以跟多个异常类名,用逗号隔开
* 表示抛出异常,由该方法的调用者来处理

public void setAge(int age) throws RuntimeException,AgeboundException{

.............}

* b:throw
* 用在方法体内,跟的是异常对象名
* 只能抛出一个异常对象名
* 表示抛出异常,由方法体内的语句处理

public void setAge(int age) throws RuntimeException {
if(age>0 && age<=150){
this.age=age;
}else{
throw new RuntimeException("年龄非法");
}

====================================================

/**
* * A:finally的特点
* 被finally控制的语句体一定会执行
* 特殊情况:在执行到finally之前jvm退出了(比如System.exit(0))
* B:finally的作用
* 用于释放资源,在IO流操作和数据库操作中会见到
* C:案例演示
* finally关键字的特点及作用
*return语句相当于是方法的最后一口气,那么在他将死之前会看一看有没有finally帮其完成遗愿,如果有就将finally执行
*后在彻底返回
*/
public static void main(String[] args) {
try {
System.out.println(10/0);
} catch (Exception e) {
System.out.println("除数为零了");
System.exit(0); //退出jvm虚拟机 finally唯一不执行的情况是遇到 exit
return;
} finally {
System.out.println("看看我执行了吗");
}
}

=======================================================

public class Test1 {

    /**
     * * A:面试题1
            * final,finally和finalize的区别
            * final可以修饰类,不能被继承
            * 修饰方法,不能被重写
            * 修饰变量,只能赋值一次
            *
            * finally是try语句中的一个语句体,不能单独使用,用来释放资源
            *
            * finalize是一个方法,当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
        * B:面试题2
            * 如果catch里面有return语句,请问finally的代码还会执行吗?如果会,请问是在return前还是return后。
     */
    public static void main(String[] args) {
        Demo d = new Demo();
        System.out.println(d.method());
    }

}

class Demo {
    public int method() {
        int x = 10;
        try {
            x = 20;
            System.out.println(1/0);
            return x;
        } catch (Exception e) {
            x = 30;
            return x;
        } finally {
            x = 40;
            //return x;                    千万不要在finally里面写返回语句,因为finally的作用是为了释放资源,是肯定会执行的
                                        //如果在这里面写返回语句,那么try和catch的结果都会被改变,所以这么写就是犯罪
        }
    }
}

 

/**
* * A:Throwable的几个常见方法
* a:getMessage()
* 获取异常信息,返回字符串。
* b:toString()
* 获取异常类名和异常信息,返回字符串。
* c:printStackTrace()
* 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。
* B:案例演示
* Throwable的几个常见方法的基本使用
*/

     */
    public static void main(String[] args) {
        try {
            System.out.println(1/0);
        } catch (Exception e) {            //Exception e = new ArithmeticException("/ by zero");      这里已创建异常对象 ,就能够直接调用异常类的方法
            //System.out.println(e.getMessage());        //获取异常信息
            //System.out.println(e);         //调用toString方法,打印异常类名和异常信息
            e.printStackTrace();        //jvm默认就用这种方式处理异常
        }
    }
时间: 2024-11-05 23:28:23

java 异常二、的相关文章

java 异常二

在本程序中,对于除数是-1,也视为是错误的,是无法进行运算的. 那么就需要对这个问题进行自定义的描述. 当在函数内部出现了throw抛出异常对象,那么,就需要给对应的处理动作. 要么在内部try catch处理:要么在函数上声明让调用者处理. 一般情况下,函数内出现异常,函数上需要声明. 如何快速定义异常信息呢? 因为父类中已经把异常信息的操作都完成了. 所以子类只要在构造时,通过super语句将异常信息传递给父类. 那么就可以直接通过getMessage方法获取自定义异常信息了. 自定义异常:

java 异常总结

一:异常结构图及基本概念 Throwable类:所有异常与错误的超类. Error类:程序无法处理的错误,表示运行应用程序中较严重问题,不需要捕获 Exception类:程序本身可以处理的异常,可以捕获 RuntimeException及其子类:可以捕获此异常,也可以不捕获.建议不捕获. 非运行时异常:必须捕获的异常. 二 try...catch...finally 1 try{ 2 //监控有可能出现异常的代码 3 }catch(Exception e){ 4 //捕获异常后执行的代码 5 }

[Java面试二]Java基础知识精华部分.

一:java概述(快速浏览): 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发: JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础: JAVA

Java异常(1)

一.要达到的效果 如果出现错误而是某些操作没有完成,程序应该: (1)返回到一种安全状态,并能够让用户执行一些其他的命令. (2)允许用户保存所有操作的结果,并以适当的方式终止程序. 异常处理的任务就是将控制权从错误产生的地方转移到能够处理这种情况的错误处理器   二.异常分类: 1.Throwable - ---------Error -     - -     ------- XXXX -      - -      ----- XXXXX ---Exception -      - -  

浅谈java异常[Exception]

本文转自:focusJ 一. 异常的定义 在<java编程思想>中这样定义 异常:阻止当前方法或作用域继续执行的问题.虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常.绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败.之所以java要提出异常处理机制,就是要告诉开发人员,你的程序出现了不正常的情况,请注意. 记得当初学习java的时候,异常总是搞不太清楚,不知道这个异常是什么意思,为什么会有这个机制?但是随着知识的积累逐渐也

Java - 异常解析基础

java提高篇(十六)-----异常(一) 一.为什么要使用异常 首先我们可以明确一点就是异常的处理机制可以确保我们程序的健壮性,提高系统可用率.虽然我们不是特别喜欢看到它,但是我们不能不承认它的地位,作用.有异常就说明程序存在问题,有助于我们及时改正.在我们的程序设计当做,任何时候任何地方因为任何原因都有可能会出现异常,在没有异常机制的时候我们是这样处理的:通过函数的返回值来判断是否发生了异常(这个返回值通常是已经约定好了的),调用该函数的程序负责检查并且分析返回值.虽然可以解决异常问题,但是

JAVA基础教程之JAVA异常机制

今天我们主要来说一说JAVA异常机制方面的内容.自设JAVA学习群457036818,大家可以交流一下 一. 异常的概念和Java异常体系结构 异常是程序运行过程中出现的错误.本文主要传授的是一些滚与Java语言的异常处理.Java语言的异常处理框架,是Java语言健壮性的一个重要体现. Java把异常当作对象来处理,而且定义一个基类java.lang.Throwable作为所有异常的超类.在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception.J

java异常 之 异常的层次结构

一:起因 (1)最近在用java处理分析各种数据,碰到了一些异常,如parse()异常 ParseException,valueOf()NumberFormatException  IllegalArgumentException异常,NullPointerExcetion  IndexOutOfBoundsExceptionFileNotFoundException等 (2)异常不能任意捕获的,不能任意的写catch(***Exceptionex){} ;只有,有可能抛出相应的异常,才写cat

Java异常封装(自定义错误码和描写叙述,附源代码)

真正工作了才发现.Java里面的异常在真正工作中使用还是十分普遍的. 什么时候该抛出什么异常,这个是必须知道的. 当然真正工作里面主动抛出的异常都是经过分装过的,自己能够定义错误码和异常描写叙述. 以下小宝鸽就为大家介绍一个Java异常简单封装的样例. 在给出异常分装样例之前.须要给大家普及Java里面的checked异常和unchecked异常的个概念. 一.checked异常和unchecked异常 这里之所以让大家清楚checked异常和unchecked异常概念,是由于:待会我们的异常是