/**
* 作者:kuma
* 版本:v1.0
* */
public class study_9_9
{
public static void main(String[] args)
{
/*
* 因为项目中会出现特有的问题
* 而这些问题并未被java所描述并封装成对象
* 所以对于这些特有的问题可以按照java的对问题封装的思想
* 将特有的问题,进行自定义的异常封装
*
* 需求:在本程序中,对于除数是-1,也视为是错误的是无法进行运算的
* 那么就需要对这个问题进行自定义的描述
*
* 当在函数内部出现了throw抛出异常对象,那么就必须要给对应的处理动作
* 要么在内部try catch处理
* 要么在函数上声明让调用者处理
*
* 一般情况下,函数内出现异常,函数需要声明异常
*
* 自定义异常:
* 必须是自定义类继承Exception
*
* 继承Exception原因(为什么不直接继承throwable)
* 异常体系有一个特点:因为异常类和异常对象都被抛出
* 他们都具备可抛性,这个可抛性是throwable的独有特性
* throws和throw必须在这个体系中的类才能够使用
* */
/*
* throw和throws的区别
* throws使用在函数上,放在函数后面
* throw使用在函数内,后跟对象
* */
cemo d=new cemo();
try {
int x = d.div(4, -1);
System.out.println("x=" + x);
}
catch(FushuException e) {
System.out.println("出现负数啦");
System.out.println(e.getMessage());
System.out.println("错误的负数是:"+e.getValue());
}
System.out.println("over");
}
}
class FushuException extends Exception//getMessage()
{
/*private String msg;
FushuException(String msg)
{
this.msg=msg;
}
public String getMessage()// 复写
{
return msg;
}*/
//Exception的父类throwable已经给写了,不用再写一次
private int value;
FushuException(String msg,int value)
{
super(msg);
this.value=value;
}
public int getValue() {
return value;
}
}
class cemo
{
int div(int a,int b) throws FushuException
{
if(b<0)
throw new FushuException("出现了除数是负数的情况 /by fushu",b);//手动通过throw关键字抛出一个自定义异常对象
return a/b;
}
}
自定义异常
最新推荐文章于 2024-10-01 18:51:18 发布