为什么我不能尝试在Unet上捕获超时错误

时间:2018-11-27 15:54:38

标签: c# unity3d unity3d-unet

我实际上将Unet用于Unity,当客户端尝试使用错误的IP加入时,出现超时错误。

Error of Unity when the server is turn-off

我想避免出现此timeout错误。因此,我尝试覆盖NetworkManager的“ OnDisconnectClient”。

public class CustomNetworkManager : NetworkManager {

    public override void OnClientDisconnect(NetworkConnection conn)
    {
        try
        {
            base.OnClientDisconnect(conn);
        }
        catch(Exception e)
        {
            Debug.Log(e.ToString());
        }
    }
}

它有效,但是当客户端有意退出服务器时,也会调用此函数。 所以我尝试了这个:

  getFilteredSizing() {
    const filterPressureAndFlowRate = row => {
     return (
     row['Pressure'] === this.state.pressure &&

     (parseFloat(row['Flow_min (GPD)']) <= parseFloat(this.state.flowRate) &&

      parseFloat(row['Flow_max (GPD)']) >= parseFloat(this.state.flowRate))
  );
};

    // filters are named by attr stored in react state
    // cols are column names in solar-sizing.js
    const filterBy = (attr, col) => result =>
    this.state[attr] === '' || this.state[attr] === result[col];

    return sizing
      .filter(filterPressureAndFlowRate)
      .filter(filterBy('filterMotor', 'Motor'))
      .filter(filterBy('filterPlunger', 'Plunger'))
      .filter(filterBy('filterHead', 'Head'))
      .filter(filterBy('filterControl', 'Controls'));
}

但是该错误没有捕获,仍然在控制台中弹出。我也尝试了没有Exception参数的catch,但还是一样。

非常感谢您的帮助。

PS:我在Unity 2018.2.15f1上工作

1 个答案:

答案 0 :(得分:0)

我将使用try-catch语句来捕获异常。然后在陷阱中执行您想做的错误处理。