2019.9.23java小知识

今天来稍微的了解一下异常,没错又是educoder里面的内容,但是是觉得很好所以就这样了

链接:https://www.educoder.net/tasks/xiocqmvkegbn

自定义异常

Java中,除了由Java系统监测到的异常(下标越界,被0除等),用户也可以自定义异常。

用户定义的异常同样要用try{} catch{}捕获,但必须由用户自己抛出 throw new MyException

异常是一个类,用户定义的异常必须继承自ThrowableException类,建议用Exception类。

语法结构如下所示:

  1. class MyException extends Exception {
  2. }

一般的,我们会这么定义一个异常:

  1. class MyException extends Exception {
  2. public MyException(String m) {
  3. super(m);
  4. }
  5. }

上述代码中的构造方法MyException(String m)中通过super()调用了父类的构造方法,效果是输出以下结果:

  1. MyException: 字符串m中的内容

在程序中,其抛出异常的语法为:

  1. throw new MyException(""); //""为字符串m中的内容,由用户自定义  

然后再上一段代码加深理解

import java.util.Scanner;

class MyException extends Exception {
    public MyException(String m) {
        super(m);
    }
}
public class MyExceptionTest {
    public static void main(String[] args) {
        try {
            Scanner scanner = new Scanner(System.in);
            int num = scanner.nextInt();
            /********** Begin *********/
            if(num >= 0){
                System.out.print("The number you entered is: " + num);
            } else{
                throw new MyException("Number cannot be negative!");
            }


            /********** End *********/
        }
        catch(MyException e) {
            System.out.print(e);
        }
    }
}

样例输入:-60

样例输出:chapter8.step3.MyException: Number cannot be negative!

样例输入:60

样例输出:The number you entered is: 60

猜你喜欢

转载自www.cnblogs.com/WildSky/p/11567966.html