我有一个问题:
"你更喜欢什么,例外处理或条件?"
面试.我的回答是异常处理程序仅在特殊情况下(例如文件写入时的磁盘权限错误)首选.面试官似乎期待着其他一些答案.什么是正确的答案?
编辑:当if条件更合适时,常用异常处理的任何特定示例?
我试图更多地了解各种设计选择的含义,并找到最有效的解决方案来防止我的代码中出现错误。在深入探讨之前,请允许我简要概括地陈述我的问题:
与 if 语句结构相比,try catch 块是处理越界异常的更有效解决方案吗?
我知道引发异常很昂贵,但是通过删除不必要的 if 语句来降低成本吗?
现在,请允许我陈述我的具体问题,以便为您提供更多有用的信息。
我正在构建一个游戏,该游戏的一部分是一个世界网格解决方案和一个探路者。游戏单元可以从世界网格请求节点(通过将坐标信息作为有序对 (x, z) 发送),然后发送到探路者或对它们执行一些其他杂项操作。因为节点被请求的频率很高,特别是探路者,这似乎是一个尝试优化的聪明地方。
这是我当前根据节点数组中的x和z值返回给定节点的代码:
public Node GetTile(int x, int z)
{
if (x < 0)
x = 0;
if (x >= length_X)
x = length_X - 1;
if (z < 0)
z = 0;
if (z >= length_Z)
z = length_Z - 1;
return tiles [x, z];
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我有几个 if 语句来避免在从世界网格的节点(图块)数组中检索节点时出现越界异常。这是最有效的解决方案吗?我可以删除 if 而是将返回放在 try catch 块中,如下所示:
public Node GetTile(int x, int z)
{
try
{ …Run Code Online (Sandbox Code Playgroud)