任务描述
本关任务:接收给定的一行字符串(用户名),自定义一个异常,判断用户名是否小于三位,如果用户名小于三位,就抛出自定义的异常。
相关知识
为了完成本关任务,你需要掌握:
1.为什么要自定义异常;
2.怎么使用自定义异常。
自定义异常
前面谈到的都是系统自带的异常,但是如果我们是在开发一个复杂项目,就经常会遇到系统自带的异常不能满足我们需求的情况,所以这个时候就需要我们自己来定义异常了。
使用自定义异常
我们一般使用继承Exception
类的方式来自定义异常,那具体怎么进行呢?
很简单,我们只需要继承Exception
,再将信息传递给父类就可以了:
class 自定义异常名 extends Exception{
public 自定义异常名(){
}
// msg代表抛出异常后显示的信息提示
public 自定义异常名(String msg){
super(msg);
}
}
一个简单的自定义异常:
public class tt {
public static void main(String[] args) throws MyException {
int i=0;
if(i==0){ // 当i=0时抛出自定义异常
throw new MyException("我是自定义异常");
}
}
}
// 自定义异常
class MyException extends Exception{
public MyException(){
}
// msg代表抛出异常后显示的信息提示
public MyException(String msg){
super(msg);
}
}
执行结果:
我是自定义异常
在以上代码中,我们自定义了一个异常,当i=0
时抛出该异常。
import java.util.Scanner;
public class ExcTest {
public static void main(String[] args) throws MyException {
// 请在Begin-End间编写代码
/********** Begin **********/
// 第一步:接收给定的字符串
Scanner input = new Scanner(System.in);
String str = input.next();
// 第二步:判断用户名长度是大于3还是小于3,如果小于3,抛出异常,否则输出提示语句
if (str.length() < 3){
throw new MyException("用户名小于三位Exception");
}else {
System.out.println("用户名格式正确");
}
}
}
// 第三步:自定义异常
class MyException extends Exception{
public MyException(){
}
public MyException(String name){
super(name);
}
}
/********** End **********/