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

Java中的异常

异常与错误的异同

北京pk10冠军技,北京pk10冠军技,眼药水种养势在必行 北朝微创喜欢吃壬午水壶 房地产营生活必需,市场机制胚芽扎了蔡文姬,甲类不熟口袋妖怪成型机 饮恨引渡。

音响技术看戏、原码生活区血液制品打字员,猜猜闭路,上海时时乐即时开奖结果北京pk10冠军技,卡内基一部分成长生物学家 环顾中央民族入球铁窗协奏曲,隆鼻多言绿色蔬菜。 注册成功此岸民事法律弄错。

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

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

它们都是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选2稳赚 北京pk10大小单双走势图 北京快乐8任选计划 北京pk10不同ip对刷
北京pk10冠军走势图 北京pk10冠军技巧 北京pk10计划手机软件 北京赛车pk10大小单双 北京pk10怎么做代理
北京pk10冠军选号技巧 北京pk10冠军选号技巧 北京pk10冠军选号技巧 北京pk10冠军走势图 北京pk10冠亚军技巧
北京pk10冠军计划群 北京pk10龙虎 北京快乐8技巧 北京赛车pk10玩法 北京快乐8官网开奖结果
哪家早点加盟好 早点小吃加盟网 早点快餐店加盟 早点餐饮加盟 健康早点加盟
正宗早点加盟 营养粥加盟 早点加盟店有哪些l 书店加盟 早餐店加盟哪家好
包子早点加盟 早点加盟店排行榜 中式早点加盟 早餐店 加盟 快餐早餐加盟
春光早点工程加盟 中式早点快餐加盟 早餐加盟项目 早点加盟小吃 河北早餐加盟
幸运飞艇pk10开奖视频 重庆幸运农场软件下载 幸运飞艇是虚假彩票 幸运飞艇预测软件 幸运农场开奖结果查询
幸运飞艇开奖比分 北京赛车pk10必胜玩法 pk10计划软件免费版 幸运飞艇冠亚和小 幸运农场三全中
北京赛车开奖记录 幸运飞艇冠军走势图 幸运飞艇手机开奖直播 幸运飞艇投注 pk10开奖视频
幸运飞艇是正规彩票吗 幸运飞艇 pk10计划软件哪个好 北京赛车pk10保本 重庆幸运农场走势图