{"record":{"id":"a3e3467ca66db811","repo":"TheAlgorithms/Java","slug":"base-must-be-greater-than-0","errorCode":null,"errorMessage":"Base must be greater than 0","messagePattern":"Base must be greater than 0","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"src/main/java/com/thealgorithms/maths/Area.java","lineNumber":147,"sourceCode":"     * @return area of given square\n     */\n    public static double surfaceAreaSquare(final double sideLength) {\n        if (sideLength <= 0) {\n            throw new IllegalArgumentException(\"Side Length must be greater than 0\");\n        }\n        return sideLength * sideLength;\n    }\n\n    /**\n     * Calculate the area of a triangle.\n     *\n     * @param base   base of triangle\n     * @param height height of triangle\n     * @return area of given triangle\n     */\n    public static double surfaceAreaTriangle(final double baseLength, final double height) {\n        if (baseLength <= 0) {\n            throw new IllegalArgumentException(POSITIVE_BASE);\n        }\n        if (height <= 0) {\n            throw new IllegalArgumentException(POSITIVE_HEIGHT);\n        }\n        return baseLength * height / 2;\n    }\n\n    /**\n     * Calculate the area of a parallelogram.\n     *\n     * @param base   base of a parallelogram\n     * @param height height of a parallelogram\n     * @return area of given parallelogram\n     */\n    public static double surfaceAreaParallelogram(final double baseLength, final double height) {\n        if (baseLength <= 0) {\n            throw new IllegalArgumentException(POSITIVE_BASE);\n        }","sourceCodeStart":129,"sourceCodeEnd":165,"githubUrl":"https://github.com/TheAlgorithms/Java/blob/fdfb9a395b310167a66bd29e311e36e0e3e9b964/src/main/java/com/thealgorithms/maths/Area.java#L129-L165","documentation":"Thrown by Area.surfaceAreaTriangle when baseLength <= 0. Uses the POSITIVE_BASE constant ('Base must be greater than 0'). Checked before height, so a non-positive base is reported first.","triggerScenarios":"surfaceAreaTriangle(0, 4); surfaceAreaTriangle(-3, 4); base defaulted to 0.","commonSituations":"Default 0.0 base field; base computed from a side length that came out 0 or negative.","solutions":["Pass baseLength > 0: surfaceAreaTriangle(3, 4).","Validate base and height before calling.","Reject degenerate (zero-base) triangles upstream."],"exampleFix":"// before\ndouble a = Area.surfaceAreaTriangle(base, h);\n// after\nif (base <= 0 || h <= 0) throw new IllegalArgumentException(\"dimensions must be > 0\");\ndouble a = Area.surfaceAreaTriangle(base, h);","handlingStrategy":"validation","validationCode":"if (!(baseLength > 0) || !(height > 0)) {\n    throw new IllegalArgumentException(\"triangle dimensions must be > 0\");\n}\ndouble a = Area.surfaceAreaTriangle(baseLength, height);","typeGuard":"static boolean allPositive(double... dims) {\n    for (double d : dims) if (!(d > 0)) return false;\n    return true;\n}","tryCatchPattern":"try {\n    double a = Area.surfaceAreaTriangle(base, h);\n} catch (IllegalArgumentException e) {\n    // base or height non-positive; re-check to identify which\n}","preventionTips":["Pre-validate base and height together for one consolidated error.","Reject degenerate (zero-base) triangles upstream.","Watch for base/height derived from coordinate diffs that are 0."],"tags":["validation","maths","geometry","precondition","illegal-argument"],"backgroundTag":null,"analyzedSha":"fdfb9a395b310167a66bd29e311e36e0e3e9b964","analyzedAt":"2026-08-13T23:36:13.315Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}