自定义异常,抛出异常
import java.util.InputMismatchException;
import java.util.Scanner;
/**
-
@author zzastart
-
@create 2021-06-01 15:37
-
编写一个Java应用程序的方法,该方法接收从键盘输入的数:
-
如果输入的数不是自然数。抛出异常,提示“请正确输入数字!”,然后继续等待用户输入。
-
如果输入的数为正数,则显示这个数,程序继续运行。
-
如果输入为负数,抛出自定义的异常,输出"错误信息"后程序,程序终止运行。
-
如果输入的数为0,则程序终止运行。
-
当程序终止运行时,会显示"程序退出,Bye!"。
*/
public class Scantest {
public static void main(String[] args) {
System.out.print(“请输入一个数:”);
testA();}
public static void testA(){
Scanner scanner = new Scanner(System.in);
try {
int num = testB(scanner.nextInt());
System.out.println(num + “是一个自然数”);}catch (InputMismatchException e){ e.printStackTrace(); System.out.print("请输入正确的数字:"); testA(); }catch (MyException e){ System.out.println("程序退出,Bye!"); e.printStackTrace();
}
}
public static int testB(int num) throws MyException{
int num1 = num;
if (num == 0){
throw new MyException(“输入的是0”);
}else if (num < 0){
throw new MyException(“错误信息!”);
}
return num1;
}
}
class MyException extends RuntimeException{
public MyException() {
super();
}
public MyException(String message) {
super(message);
}
public MyException(String message, Throwable cause) {
super(message, cause);
}
public MyException(Throwable cause) {
super(cause);
}
protected MyException(String message, Throwable cause, boolean enableSuppression,
boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
}
}