2014-01-08 237 views
-1

我在客戶機上安裝了C#windows應用程序。它運行良好,突然應用的崩潰,當我檢查異常,我得到了以下信息:Windows應用程序已停止工作

說明:停止工作

<ProblemSignatures> 
<EventType>CLR20r3</EventType> 
<Parameter0>myapp.exe</parameter0> 
<Parameter1>2.0.13</parameter0> 
<Parameter2>529dadac</parameter0> 
<Parameter3>mscorlib</parameter0> 
<Parameter4>2.0.0.</parameter0> 
<Parameter5>5174ddfb</parameter0> 
<Parameter6>c43</parameter0> 
<Parameter7>59</parameter0> 
<Parameter8>System.FormatException</parameter0> 

請給寶貴的建議。

+0

可能重複[如何分析Windows Crash Reporter生成的WERInternalMetadata.xml文件?](http://stackoverflow.com/questions/3218649/how-to-analyse-werinternalmetadata-xml-file-generated-by- windows-crash-reporter) – Stijn

+0

在你的文章中包含的崩潰是由FormatException引起的。在大多數情況下,原因是格式化string.Format使用錯誤。 – dixus

+0

你正在轉換你的代碼中的一些空值,找到它 –

回答

1

你得到的例外是: - System.FormatException
這裏是關於它的簡要說明: - 當在一方法調用的參數的格式不匹配對應的形參類型的格式

出現FormatException被拋出。例如,如果一個方法指定一個由兩個數字組成的嵌入句點的String參數,那麼將一個僅包含兩位數字的相應字符串參數傳遞給該方法會導致引發FormatException。 FormatException使用HRESULT COR_E_FORMAT,其值爲0x80131537。

如果你有一個WinForm應用程序,嘗試做它在你「的Program.cs」文件:-(默認的文件通過viusual Studio生成名稱)

try 
    { 
     Application.Run(new Form()) ; 
    } 
    catch(Exception ex) 
    { 
    Log(ex) ; 
    } 

    void Log(Exception ex) 
    { 
     string stackTrace = ex.StackTrace ; 
     File.WriteAllText(youFilePathHere, stackTrace) ; // path of file where stack trace will be stored. 
    } 

通過分析堆棧跟蹤您將很容易瞭解您在應用程序中遇到的「運行時異常」(確切的行號,方法名稱等)。
希望它有幫助!

0

由此難以分析。

但是, 當您將null值轉換爲有意義的值時,將拋出此異常。

通過使用Convert函數,您可能試圖將空值轉換爲其他值。

您必須檢查代碼中的空值,然後assign it to 0或任何其他值作爲便利。