java自定义异常类用数组求成绩,JAVA自定义异常

对于java中的异常,相信大家都不会陌生,常见的异常有:

1、NullPointException,空指针异常

2、ClassCastException:类型强制转化异常

3、ArrayIndexOutBoundsException:数组下标越界异常

4、ArithmeticException:算数异常

5、SecurityException:违背安全异常

6、NumberFormatException:字符串转换为数字异常

7、FileNotFounfException:文件为找到异常

8、SQLException:数据库操作异常

9、NoSuchMethodException:为找到此方法异常

10、IOException:输入输出流异常

异常中的try,catch,throw,throws,finally处理方法,相信都能很好理解,下面我重点来说自定义异常了。

为什么需要自定义异常?

1、项目分模块开发时自定义异常类可以统一对外展示异常;

2、自定义异常可以继承相关的异常来抛出处理后的异常信息,从而隐藏底层的异常,这样更加安全直观,便与精确查查找异常信息,快速解决异常。

自定义异常类MyException的具体步骤:一、继承Exception

package test;

import java.io.PrintStream;

import java.io.PrintWriter;

public class MyException extends Exception {

private static final long serialVersionUID = 1L;

/**

* 重载构造函数

*/

public MyException() {

super();

}

public MyException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {

super(message, cause, enableSuppression, writableStackTrace);

}

public MyException(String message, Throwable cause) {

super(message, cause);

}

public MyException(Throwable cause) {

super(cause);

}

public MyException(String message) {

super(message);

}

/**

* 重写父类的方法

*/

@Override

public String getMessage() {

return super.getMessage();

}

@Override

public String getLocalizedMessage() {

// TODO Auto-generated method stub

return super.getLocalizedMessage();

}

@Override

public void printStackTrace() {

// TODO Auto-generated method stub

super.printStackTrace();

}

@Override

public void printStackTrace(PrintStream s) {

// TODO Auto-generated method stub

super.printStackTrace(s);

}

@Override

public void printStackTrace(PrintWriter s) {

// TODO Auto-generated method stub

super.printStackTrace(s);

}

@Override

public StackTraceElement[] getStackTrace() {

// TODO Auto-generated method stub

return super.getStackTrace();

}

@Override

public void setStackTrace(StackTraceElement[] stackTrace) {

// TODO Auto-generated method stub

super.setStackTrace(stackTrace);

}

}

使用MyException异常类:

package test;

public class Test2 {

public StringBuffer getNumber(Long a) throws MyException {

StringBuffer stringBuffer = new StringBuffer();

if(a<0 || a>99999) {

throw new MyException("输入数字范围不正确");

}

if(a/10000 >0 ) {

stringBuffer.append(a/10000);

}

if((a/1000)%10 >0) {

stringBuffer.append((a/1000)%10);

}

if((a/100)%10 >0) {

stringBuffer.append((a/100)%10);

}

if((a/10)%10 >0) {

stringBuffer.append((a/10)%10);

}

if(a%10 >0) {

stringBuffer.append(a%10);

}

return stringBuffer.reverse();

}

public static void main(String[] args) throws MyException {

Test2 test2 = new Test2();

StringBuffer aString = test2.getNumber(123456L);//输入的数值超100000,抛出异常

System.out.println(aString);

}

}

控制台输出:

e7221c4f4baff8f90b8e440b86976933.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值