java自定义异常例子(三角形)
实现:1、输入三个数字,输出三角形的周长和面积;
2、如果输入的三条边不能构成三角形,报出自定义的错误提示信息;
3、输入 0 、负数 等错误,都显示文字错误。
包名:com.my
新建个 自定义异常类:
package com.my;
class SanjiaoException extends Exception{ //自定义异常类
String message; //定义String类型变量
public SanjiaoException(String ErrorMessage){ //父类方法
message=ErrorMessage;
}
public String gerMessage(){ //覆盖getMessage()方法
return message;
}
}
新建个 方法类:
package com.my;
class Cal { //创建类
static void san(double a,double b,double c) throws SanjiaoException{ //定义方法抛出异常
if(a0||b0||c0){ //判断参数是否为负
throw new SanjiaoException("边长不能为负");
}else if(a==0||b==0||c==0){ //判断参数是否为零
throw new SanjiaoException("边长不能为零"); //异常信息
}else if(a+bca+cbb+ca){ //判断参数是否为可以构成三角形
System.out.println("三角形的边长分别为"+"a="+a+","+"b="+b+","+"c="+c);
double zhouchang = a+b+c;
double l = a+b+c;
double s = l/2;
double mianji = Math.sqrt(s*(s-a)*(s-b)*(s-c));
System.out.println("三角形周长为"+zhouchang);
if(mianji==0){
System.out.println("面积大小超出范围!");
}else{
System.out.println("三角形面积为"+mianji);
}
}else{
throw new SanjiaoException("不能构成三角形,请仔细检查!");
}
}
}
最后建个测试类:
package com.my;
import javax.swing.JOptionPane;
public class SanjiaoTest { //测试类
/**
* @param args
*/
public static void main(String[] args) throws NumberFormatException {
// TODO 自动生成的方法存根
try{
double a=0,b=0,c=0;
a = Double.parseDouble(JOptionPane.showInputDialog("请输入边长",new Double(a)));
b = Double.parseDouble(JOptionPane.showInputDialog("请输入边长",new Double(b)));
c = Double.parseDouble(JOptionPane.showInputDialog("请输入边长",new Double(c)));
Cal.san(a, b, c);
}catch(SanjiaoException se){ //捕获和处理自定义异常
System.out.println("异常:");
System.out.println(se.gerMessage());
}catch(java.lang.NumberFormatException e){
System.out.println("异常:输入的不是数字");
}catch(Exception e){
System.out.println("捕获和处理异结束");
}
}
}
最后,没有了。就这样吧。
标签: none