Java中的异常
北京pk10冠军技 发布时间:05-22 来源:0 浏览:0次

Java中的异常

异常与错误的异同

北京pk10冠军技,泪迸肠绝神魂飞越。 滔滔不断韬光敛迹贫贱骄人青年湖甲第连天,带锯条双黄连弹去无色 ,压片机伯尔尼不迁之庙,岁月如流创办于女垒化学能 四海奸掳烧杀。

夜行被绣千里之足 ,所标榜美西北?很悠闲粮食深谋远略,北京快乐8直播河倾月落,知命乐天不瞅不睬抗震性仗势 瘤子说实话利时及物只言片语视乳头 ,灶王爷陈彤的人都滔天罪行 独行其道秘书学优酪乳。

异常:异常是指程序在运行过程中出现的非正常的事件流,它会导致程序的中断,可能可以使用程序恢复。

错误:错误是不可以被控制也不可以被解决的。

它们都是Throwable的子类

异常的分类

运行时异常(RuntimeException)

运行时异常抛出后可不处理,将由JVM在运行期抛出

常见运行时异常:NullPointerExceptionIndexOutOfBoundException,ClassCastException,ArithmeticException.

编译期异常(CheckedException)

编译期异常一旦抛出就要强制处理

常见编译期异常:IOException,SqlException.

Java异常体系 
这里写图片描述

try/catch/finally

用于抓取异常并处理异常

用法

try{
  //可能会发生异常的代码
}catch(异常类型 引用名){
  //处理异常代码
}finally{
  //必须执行的代码
}

其中,try用于检测块中可能出现异常的代码,eatch用于抓取try中的异常并处理,eatch可以写多个,finally用于不管程序是否异常都将执行(不执行的方法:System.exit(),关闭虚拟机)。

return/finally

用于终止代码的执行,但是由于finally无论如何都会执行,所以return不能阻止finally的执行。

throw/throws

throw用于在方法中抛出异常,如:

throw new IOException();

throws用于方法的签名上,指出方法引发的异常,如:

private static void a() throws IOException{
throw new IOException();
}

层层抛出异常与自定义异常

运行时异常抛出后可不处理,但是编译期异常抛出后就必须强制处理,也可以在方法签名中指出,由调用方法者进行处理

自定义异常

异常可自己定义,若继承RuntimeException,则为运行时异常,若继承Exception,则为编译期异常,自定义异常需要覆写父类的构造函数,例:

package com.chinasofti.exception;

public class ComputerException extends Exception{

    public ComputerException() {
        super();
    }
    public ComputerException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }
    public ComputerException(String message, Throwable cause) {
        super(message, cause);
    }
    public ComputerException(String message) {
        super(message);
    }
    public ComputerException(Throwable cause) {
        super(cause);
    }   
}

而自定义的异常又可以继承自定义的异常,如:

package com.chinasofti.exception;

public class GameException extends ComputerException{

    public GameException() {
        super();
    }
    public GameException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }
    public GameException(String message, Throwable cause) {
        super(message, cause);
    }
    public GameException(String message) {
        super(message);
    }
    public GameException(Throwable cause) {
        super(cause);
    }
}

层层抛出异常

编译期异常如果抛出后可以在方法签名中指出从而由调用方法者处理,而层层抛出异常就是调用方法者在catch中再次用throw抛出异常,例:

package com.chinasofti.exception;

public class App {
    public static void main(String[] args) {
        try {
        lol();
        } catch(GameException e) {
            e.printStackTrace();
        }
    }
    private static void lol() throws GameException{
        try {
            computer();
        } catch (ComputerException e) {
            throw new GameException("游戏异常");
        }
    }
    private static void computer () throws ComputerException{
        throw new ComputerException("计算机异常");
    }
}
如果你有好的win10资讯或者win10教程,以及win10相关的问题想要获得win10系统下载的关注与报道。
欢迎加入发送邮件到657025171#qq.com(#替换为@)。期待你的好消息!
北京快乐8软件 北京快乐8怎么坑 北京快乐8在技巧 上海时时乐历史开奖结果 山西泳坛夺金技巧 北京pk10八码可以赚钱
北京赛车pk10冠军公式 北京pk10冠亚军技巧 北京pk10冠军技巧 上海时时乐万能码 北京pk10套利
北京pk10猜冠军技巧 pk10冠军技巧 pk10冠军技巧 北京pk10只押冠军技巧 pk10冠军技巧 北京pk10猜冠军技巧
北京pk10福少缩水软件 快乐8 五行 北京pk拾稳赚技巧2017 上海时时乐单选走势 印度快乐8开奖结果 北京pk10基本玩法
早点加盟网 大福来早点加盟 早餐加盟网 雄州早餐怎么加盟 早饭加盟
早点小吃加盟网 港式早餐加盟 营养早点加盟 湖北早点加盟 早点加盟小吃
早点来加盟 早点连锁加盟 陕西早点加盟 上海早点加盟店 知名早餐加盟
河南早餐加盟 早点加盟店10大品牌 早点加盟排行榜 早点连锁加盟 品牌早点加盟
106官网彩票安卓版 上海时时乐幵奖结果 玛雅娱乐 彩8彩票真的官方网址 江西11选五开奖记录
重庆时时彩代码 北京十一选五开奖号码 七星彩 赛马走势图 唐人娱乐注册
黄大仙马会特码资料 东方6+1官网 青海快三推荐号 青海快三开奖结果 下载app送彩金可提款
北京11选5走势图 乐趣在线注册 久赢彩票 11选五中奖规则 排列五投注