javaSE第六章(异常)

第六章(异常)

1.java异常概念

异常:不正常,不是代码可以解决的

广义上的异常:程序中出现的任何异常

狭义上的异常(我们所说的异常):程序在运行时出现的不正常情况,可以使用异常处理机制解决

Error:java虚拟机无法解决的严重问题,一旦程序运行时出现错误 程序是无法解决的

Exception:程序运行时出现不正常情况,异常处理机制可以处理 如越界

2.异常的体系

 

 

1.算术异常 ArithmeticException
System.out.println(10/0);

 

2.数组越界 ArrayIndexOutOfBoundsException
3.数字格式化 NumberFormatException   
int a = Integer.parseInt("a10");
4.空指针  使用值为null的引用 NullPointerException  
String s = null;
s.getBytes();
5.类型转换异常  ClassCastException
Object a = "abc";
Integer b = (Integer)a;

3.throws和thhrow

throws:定义一个方法的时候可以使用throws关键字声明(表示可能出现的异常),表示此方法

不处理异常,而交给方法调用处进行处理,所以调用时必须处理声明的异常,要么使用try-catch处理掉,要

么继续使用throws声明向上抛出去。

例如:

throw:用于显

public void test throws 异常1,异常2,异常3{ 
​
} 

示抛出异常,抛出的是异常类实例化对象(即“ XX ” )

如:throw new RunTimeException();//异常类构造方法

public static void someMethod() {
if (1==1) { 
throw new RuntimeException("错误原因(实例化对象 就是getMessage();要输出的内容)"); //如何调用?catch{System.out.println(e.getMessage())}
}
}

4.异常处理

Java的异常处理是通过5个关键字来实现的:

try、catch、 finally、throw、throws

 

基本语法

try{

可能会发生异常的代码

}catch(异常类型 引用名 如e){

e.printStackTrace();//打印异常信息

异常处理代码

}finally{

必须执行代码

}

5.自定义异常

自定义异常就是自己定义的异常类,也就是API中的标准异常类的直接或间接的子类

作用:用自定义异常标记业务逻辑的异常,避免与标准异常混淆

定义异常类:

package com.ffyc.javaexception;/*   我们可以根据自己的业务需要,开发自定义异常类 */
public class ScoreException extends  Exception{ 
    public ScoreException() {   
        super();  //继承父类Exception  不写也默认继承
    }  
    public ScoreException(String message){//构造方法
        super(message); //该子类继承父类的message 
    }
}

package com.ffyc.javaexception;
​​
public class Demo7 {
​
    public static void main(String[] args) {
        try {
            test(101);
        } catch (ScoreException e) {
            e.printStackTrace();//打印异常信息
            System.out.println(e.getMessage());
        }
    }
​
​
    public static char test(int score) throws ScoreException {
        if(score<0||score>100){
            //不合法分数,没必要继续向下执行,此处可以使用throw直接在方法中抛出一个异常对象.
            throw new ScoreException("不合法的分数");
        }
        if(score>=90){
            return 'A';
        }else{
            return 'B';
        }
    }
}
​

运行结果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

团团kobebryant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值