2016-08-19 4 views
1

Ich bekomme unreachable code Warnung in catch Block und ich kann nicht debuggen. Bitte machen Sie mir, wie man diesen Fehler zu beheben:Nicht erreichbarer Code in C# erkannt. Net

private void HandleDevelopmentServer() 
{ 
    string sErrMsg = ""; 
    try 
    { 
     QuasarInterfaces.ISecurity oSecurity = null; 
     Global.CreateSecurityComponent(ref oSecurity); 
     System.Data.DataSet oDS; 
     DataTable dtDBSettings = new DataTable(); 
     string sDBString = System.Configuration.ConfigurationSettings.AppSettings["Environment"]; 
     Global.ReadDBConfig(sDBString, ref dtDBSettings); 
     oSecurity.FetchAllUsers(out oDS, out sErrMsg, dtDBSettings) 

     if (sErrMsg.Length > 0) 
      throw new Exception(sErrMsg);    

     if ((oDS != null) && (oDS.Tables.Count != 0)) 
     { 
      DropDownList1.DataSource = oDS; 
      DropDownList1.DataBind(); 
     } 
    } 
    catch (Exception e) 
    { 
     throw new Exception("HandleDevelopmentServer function failed;" + e.Message);    
     Global.writeLog("" + e.ToString()); 
    } 
} 
+2

Verschieben Sie die Protokollierung vor dem Auslösen der Ausnahme. –

+1

Ähm, versuche nicht * zu protokollieren * nachdem du eine Ausnahme geworfen hast? Wie können Sie erwarten, dass der 'Global.writeLog'-Methodenaufruf jemals funktioniert? (Sie sollten bzgl. .NET-Namenskonventionen lernen.) –

+1

Wie in der Fehlermeldung angegeben, ist der 'Global.writeLog ('" + e.ToString()); 'Teil nicht erreichbar, weil Sie eine Ausnahme vor ohne werfen Umgang damit. –

Antwort

4

Diese Linie wird nie passieren:

Global.writeLog("" + e.ToString()); 

Sie werfen eine Ausnahme nur darüber, diese Methode bedeutet, an diesem Punkt zum vorherigen verlassen wird der Aufrufstack

Durch nur die beiden zu wechseln, wird es in Ordnung sein.

catch (Exception e) 
{ 
    Global.writeLog("" + e.ToString()); 
    throw new Exception("HandleDevelopmentServer function failed;" + e.Message);    
} 

Und Sie können auch die "" + entfernen.

+0

@Ganesh Chemanchula - Hat Ihnen dies geholfen, das Problem zu lösen? –

+0

Ja Gilad !! Vielen Dank :) –

+0

@GaneshChemanchula - Bitte beachten Sie die Markierung Frage als gelöst durch die Annahme meiner Antwort –

2

Sie müssen die zwei Zeilen im catch-Block wechseln, damit das Protokoll geschrieben wird, bevor die Ausnahme ausgelöst wird.

Verwandte Themen