C# 正在转换公共重写字符串以尝试{}捕获?

C# 正在转换公共重写字符串以尝试{}捕获?,c#,C#,我试图在这个语句上使用try{…}catch,因为它太大,会导致模拟器崩溃。当它将其转换为字符串时,即。所以解决方法是尝试{…}捕捉 我该怎么做呢 错误: System.NullReferenceException: Object reference not set to an instance of an object. at Plus.Messages.Net.GamePacketParser.handlePacketData(Byte[] Data) in C:\Users\Admi

我试图在这个语句上使用try{…}catch,因为它太大,会导致模拟器崩溃。当它将其转换为字符串时,即。所以解决方法是尝试{…}捕捉

我该怎么做呢

错误:

System.NullReferenceException: Object reference not set to an instance of an object.
   at Plus.Messages.Net.GamePacketParser.handlePacketData(Byte[] Data) in C:\Users\Administrator\Desktop\Emulator\Messages\Net\GamePacketParser.cs:line 75
Date/Time: 2018-02-08 13:27:05,435
Thread: 25
Packet Error!

System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
   at Plus.Communication.Packets.Incoming.ClientPacket.ToString()
   at Plus.HabboHotel.GameClients.GameClient.parser_onNewPacket(ClientPacket 
信息 在Plus.Messages.Net.GamePacketParser.handlePacketDataByte[]数据中

有人说,

我特别建议包装这条线 代码: Plus.Communication.Packets.Incoming.ClientPacket.ToString 在try{}catch块中,尝试将clientpacket解析为字符串,并捕获得到的内存异常,这样,过大的数据包不会使仿真器崩溃,但会被忽略,不会通过


您可以在return语句之前标记变量:

public override string ToString()
{ 
  try 
  {

     var str = "[" + Header + "] BODY: " + 
        (PlusEnvironment
           .GetDefaultEncoding()
           .GetString(Body)
           .Replace(Convert.ToChar(0).ToString(), "[0]"));

    // return if no exception is thrown
    return str;
  }
  catch (System.Exception e)
  {
    return e.Message:
  }

}

在variableConvert.ToChar0.ToString中拆分指令是愚蠢的。您使用的是一个文本整数,并将其转换为一个字符,然后转换为一个字符串。只需使用0,就不必强制转换。因为它太大,会导致模拟器崩溃Eeehm,什么?你的应用不会因为语句太大而崩溃,不管这意味着什么。这是因为你有一个例外。发布该异常为什么不能将该语句包装在try块和catch块返回中,不管错误返回值是什么?在这里使用try/catch并不是一个解决方案。充其量这是一个粗糙的解决方法,最坏的情况下,它隐藏了实际的问题。找出那是什么并解决它。
public override string ToString()
{ 
  try 
  {

     var str = "[" + Header + "] BODY: " + 
        (PlusEnvironment
           .GetDefaultEncoding()
           .GetString(Body)
           .Replace(Convert.ToChar(0).ToString(), "[0]"));

    // return if no exception is thrown
    return str;
  }
  catch (System.Exception e)
  {
    return e.Message:
  }