解法一:
package step2;
import java.util.Scanner;
/*
* 问题描述:编写一个程序,自定义异常类,实现除零异常和其他异常的捕获与处理
*
* 要求
* 1.依次输入两个整数进行除法运算
* 2.出现异常时,如果是“除零”异常则输出“除零异常!”,否则输出“其他异常”
* 3.未出现异常时,将结果正常输出
*
* 提示
* 1.可以使用Scanner类实现从键盘读入字符
* 例如
* Scanner scanner = new Scanner(System.in);
* int test1 = scanner.nextInt(); //读入整数
* 2.在一个java文件中可以有多个类,但只能有一个public关键字修饰的
* 3.可以通过继承Exception类自定义异常类
*
* 示例
* 测试输入
* 3 2
* 测试输出
* 结果为1
*
* 测试输入
* 3 0
* 测试输出
* 除零异常!
*
* 测试输入
* hhh 2
* 测试输出
* 其他异常
*/
public class Q2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
int a = scanner.nextInt();
int b = scanner.nextInt();
int c;
c=division(a,b);
System.out.print("结果为"+c);
}catch(MyException e) {
System.out.print(e.getMessage());
}catch(Exception e) {
System.out.print("其他异常");
}
}
public static int division(int dividend, int divisor) throws MyException {
if (divisor == 0) {
throw new MyException("除零异常!");
}
int quotient = dividend / divisor;
if (quotient < 0) {
throw new MyException("商小于0");
}
return quotient;
}
}
class MyException extends Exception{
public MyException() {
super();
}
public MyException(String message) {
super(message);
}
}
解法二:
import java.util.Scanner;
public class Q2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
int a = scanner.nextInt();
int b = scanner.nextInt();
if(b==0) {
throw new MyException("除零异常!");
}
System.out.print("结果为"+a/b);
}catch(MyException e) {
System.out.print(e.getMessage());
}catch(Exception e) {
System.out.print("其他异常");
}
}
}
class MyException extends Exception{
public MyException(String message) {
super(message);
}
}