如何在Java几何计算方法中添加负值输入的错误提示?
解决Geometry类参数负值校验问题
你可以通过在每个计算面积的静态方法中添加参数合法性校验来实现需求,以下是两种常用的处理方案:
方案1:打印错误提示并返回无效值
在检测到负值参数时,通过System.err输出错误提示,同时返回Double.NaN(非数字)表示计算结果无效:
import java.math.*; public class Geometry { public static double circle(double r){ if (r < 0) { System.err.println("错误:圆的半径不能为负值"); return Double.NaN; } return Math.PI*r*r; } public static double rectangle(double l, double w) { if (l < 0 || w < 0) { System.err.println("错误:矩形的长和宽不能为负值"); return Double.NaN; } return l*w; } public static double triangle(double b, double h){ if (b < 0 || h < 0) { System.err.println("错误:三角形的底和高不能为负值"); return Double.NaN; } return b*h/2; } }
方案2:抛出非法参数异常
这种方式更符合Java的异常处理规范,调用方可以捕获异常并做针对性处理:
import java.math.*; public class Geometry { public static double circle(double r){ if (r < 0) { throw new IllegalArgumentException("圆的半径不能为负值"); } return Math.PI*r*r; } public static double rectangle(double l, double w) { if (l < 0 || w < 0) { throw new IllegalArgumentException("矩形的长和宽不能为负值"); } return l*w; } public static double triangle(double b, double h){ if (b < 0 || h < 0) { throw new IllegalArgumentException("三角形的底和高不能为负值"); } return b*h/2; } }
说明
- 方案1适合简单场景,直接提示错误但不中断程序执行;
- 方案2更严谨,强制调用方处理参数非法的情况,避免无效结果流入后续逻辑。
内容的提问来源于stack exchange,提问作者8_Bit_Whit
相关产品推荐
相关产品推荐

