2017-03-13 3 views
-5

Aufruf konstruiert ich die folgende Klasse:Nicht behandelte Ausnahme, wenn das Objekt

public class FSCServerLocator 
    { 
     public string userLocation { get; private set; } 

     public string FSCServer 
     { 
      get 
      { 
       switch (userLocation) 
       { 
        default: 
         return @"\\himgwsfs01\QT_Tools\Diagnose\09_SWT_FSCs"; 
       } 
      } 
     } 

     public FSCServerLocator(string location) 
     { 
      if (string.IsNullOrWhiteSpace(userLocation)) 
      { 
       throw new Exception("No location included at initialization"); 
      } 
      //parameter filtering 
      userLocation = location; 
     } 
    } 
} 

Und ruft das Objekt wie dieses

var fscServerLocator = new FSCServerLocator(@"\\himgwsfs01\QT_Tools\Diagnose\09_SWT_FSCs"); 

Wenn das Programm läuft eine nicht behandelte Ausnahme {"No location included at initialization"} sagen ausgelöst. Ich möchte nur, um zu sehen, ob der Ort erreicht ist, aber vielleicht etwas fehle ich, da ich bin hier in C#

+1

In der Zeile 'if (string.IsNullOrWhiteSpace (userLocation))' verwenden Sie 'userLocation' anstelle des Arguments' location'. – dcg

Antwort

5

Sie benötigen Konstruktor ändern an Standort zu suchen statt userLocation (siehe unten), um zu vermeiden, diese Ausnahme:

public FSCServerLocator(string location) 
    { 
     if (string.IsNullOrWhiteSpace(location)) 
     { 
      throw new Exception("No location included at initialization"); 
     } 
     //parameter filtering 
     userLocation = location; 
    } 
+0

könnte das nicht verkürzt werden? userLocation = Standort? Neue Exception werfen ("Kein Ort bei der Initialisierung enthalten"); –

+1

Aus persönlicher Sicht bevorzuge ich die visuelle Validierung und Zuweisung von Argumenten. Es ist auch zu beachten, dass OP nach StringIsNullOrWhiteSpace nicht nur null (d. H. ??) sucht – StfBln

0
public FSCServerLocator(string location) 
    { 
     //parameter filtering 
     userLocation = location; 
     if (string.IsNullOrWhiteSpace(userLocation)) 
     { 
      throw new Exception("No location included at initialization"); 
     } 
    } 

oder

public FSCServerLocator(string location) 
    { 
     if (string.IsNullOrWhiteSpace(location)) 
     { 
      throw new Exception("No location included at initialization"); 
     } 
     //parameter filtering 
     userLocation = location; 
    } 

Sie versuchen, den Parameter des Objekts zu verwenden, bevor Sie es in Ihrem Konstruktor festlegen. Sie können es entweder zuerst festlegen oder basierend auf dem Argument testen, mit dem Sie es festlegen möchten.

Verwandte Themen