java 自定义错误_Java自定义异常

先看标准的例子:

Test.java/*

模拟注册

*/

public class Test{

public static void main(String[] args){

//假如用户提供的用户名如下

String username = "xpleaf";

//注册

CustomerService cs = new CustomerService();

try{

cs.register(username);

}catch(IllegalNameException e){

System.out.println(e.getMessage());

}

}

}

CustomerService.java//顾客相关的业务

public class CustomerService{

//对外提供一个注册的方法

public void register(String name) throws IllegalNameException{

//完成注册

if(name.length()<6){

//异常

//创建异常对象

//IllegalNameException e = new IllegalNameException("用户名长度不能少6位");

//手动抛出异常

//throw e;

throw new IllegalNameException("用户名长度不能少6位");

}

//如果代码能执行到此处,证明用户名是合法的.

System.out.println("注册成功!");

}

}

IllegalNameException.java/*

自定义“无效名字异常”.

1.编译时异常,直接继承Exception

2.运行时异常,直接继承RuntimeException

*/

public class IllegalNameException extends Exception{ //编译时异常

//public class IllegalNameException extends RuntimeException{ //运行时异常

//定义异常一般提供两个构造方法

public IllegalNameException(){}

public IllegalNameException(String msg){

super(msg);

}

}

其实比较简单,只要把相关的类创建好就OK了,最关键是在异常处理类中继承Exception。

根据此,再写一个自定义异常,要求如果输入的数字大于100,则抛出异常:

Main_pro.javaimport java.util.Scanner;

public class Main_pro {

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println("Please input a number for a:");

Scanner s = new Scanner(System.in);

int a = s.nextInt();

Num_check check = new Num_check();

try{

check.checknum(a);

}

catch(NumError e){

System.out.println(e.getMessage());

}

}

}

Num_check.javapublic class Num_check {

public void checknum(int num) throws NumError{

if (num>=100){

throw new NumError("Error!");

}

System.out.println("The number is normal.");

}

}

NumError.javapublic class NumError extends Exception{

public NumError(){}

public NumError(String msg){

super(msg);

}

}

通过上面两个例子,再对比Python中的异常处理,最大的感想是:Python的真的要简洁好多!当然,这是因为在Java中,每一个方法都要写成一个类,而在Python中,不一定要使用面向对象的程序设计思想,因此可以简洁很多。

关于Python异常处理的详细说明,可以参考前面我写的文章:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值