Files
Java/Experiment/graph/Exp6/SafeTriangle.mermaid
2025-11-06 10:29:13 +08:00

34 lines
1.5 KiB
Plaintext

graph TD
subgraph getArea 方法
GA_A["开始 getArea(a, b, c)"] --> GA_B{判断 a+b>c 且 a+c>b 且 b+c>a};
GA_B -- false --> GA_C[抛出 IllegalArgumentException “无法构成三角形”];
GA_B -- true --> GA_D["计算 (a+b+c)/2"];
GA_D --> GA_E[返回结果];
GA_C --> GA_E;
end
subgraph main 方法
M_A[开始 main] --> M_B[创建 SafeTriangle 对象 triangle];
M_B --> M_C{try 块};
M_C --> M_D[打印 “请输入三角形的三条边长:”];
M_D --> M_E[创建 Scanner 对象];
M_E --> M_F[读取一行输入];
M_F --> M_G[按空格分割输入为 parts 数组];
M_G --> M_H{判断 parts.length < 3};
M_H -- true --> M_I[抛出 IllegalArgumentException “请输入三条边长”];
M_H -- false --> M_J[初始化 a, b, c = 0];
M_J --> M_K{内部 try 块};
M_K --> M_L["解析 parts[0] 为 a"];
M_L --> M_M["解析 parts[1] 为 b"];
M_M --> M_N["解析 parts[2] 为 c"];
M_N --> M_O["调用 triangle.getArea(a, b, c) 获取面积 area"];
M_O --> M_P[打印 “三角形面积: ” + area];
M_P --> M_Q[结束 try 块];
M_K -- NumberFormatException --> M_R[捕获 NumberFormatException];
M_R --> M_S[抛出 IllegalArgumentException “边长必须是数字”];
M_S --> M_T{捕获外部 IllegalArgumentException};
M_I --> M_T;
M_Q --> M_U[结束 main];
M_T --> M_V["打印异常信息 e.getMessage()"];
M_V --> M_U;
end