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

Java中的异常

异常与错误的异同

北京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走势图360 北京pk10 官方赔率 北京pk10高手技巧 北京pk10 360
北京pk10冠军技巧 北京pk10冠军技巧 北京pk10冠军选号技巧 上海时时乐开奖彩票控 北京pk10七码稳赚技巧
pk10冠军技巧5码公式 北京pk10猜冠军技巧 北京pk10冠军选号技巧 北京pk10冠军技巧 北京pk10冠军选号技巧 北京pk10冠军选号技巧
pk10冠军技巧 北京快乐8官网开奖结果 时时彩后一100%杀号法 北京pk10追号软件 上海时时乐开奖彩票控 北京雾霾数据统计
早餐亭加盟 早点加盟品牌 哪家早点加盟好 湖南特色早点加盟 港式早餐加盟
山东早餐加盟 网吧加盟 雄州早餐加盟 娘家早餐加盟 绝味加盟
品牌早点加盟 天津早点加盟 早饭加盟 清真早点加盟 早餐馅饼加盟
早点加盟多少钱 陕西早点加盟 早餐培训加盟 早龙早餐加盟 早点加盟店10大品牌
盈利娱乐官方网站 江苏7位数开奖查询 河北快三官网 35选7走势图 幸运28最快结果参考
海南飞鱼户外俱乐部 快乐12走势图 重庆时时彩组选120稳赚 湖北快3开奖结果l 甘肃十一选五开奖结果走势图
舟山飞鱼近期开奖号 盈利娱乐 北京pk10真人游戏 福建11选5开奖记录 昨天青海快三开奖结果
pk10模式长期稳赚 幸运飞艇冠军走势图 广西快乐十分开奖 快3走势图今天 山西11选5任5遗漏