自定义异常,在try中抛出异常,再catch进行处理。是不是就不用throws这个异常了。不过抛出不处理就得throws吧?代码如下:不用加throws DiviorIsZeroException了吧?
import javax.swing.JOptionPane;
class DiviorIsZeroException extends Exception{
public DiviorIsZeroException(){
super();
}
}
public class Test6_3 {
public static void main(String[] args){
double num1, num2;
double result;
try{
String str1 = JOptionPane.showInputDialog("请输入被除数:");
num1 = Double.parseDouble(str1);
String str2 = JOptionPane.showInputDialog("请输入除数");
num2 = Double.parseDouble(str2);
if (num2 == 0){
throw new DiviorIsZeroException();
}
result = num1 / num2;
JOptionPane.showMessageDialog(null, num1+"÷"+num2+"="+result);
}catch(DiviorIsZeroException ex){
JOptionPane.showMessageDialog(null, "除数不能为0");
}catch(ArithmeticException ex){
JOptionPane.showMessageDialog(null, "除数不能为0");
}catch(NumberFormatException ex){
JOptionPane.showMessageDialog(null, "数字格式转换异常");
}catch(Exception ex){
JOptionPane.showMessageDialog(null, "通用型异常");
}
}
}