Piszę aplikację aC# i chcę wyprowadzać komunikaty o błędach do konsoli lub skrzynki wiadomości (w zależności od typu aplikacji: enum AppTypeChoice {Console, Windows}), a także kontrolować, czy aplikacja działa, czy nie (bool StopOnError).Dlaczego jest tu niedostępny kod?
Wpadłem na tę metodę, która sprawdzi wszystkie kryteria, ale otrzymuję ostrzeżenie "nieosiągalny wykryty kod". Nie rozumiem, dlaczego!
Oto cały sposób (sami Brace dla pewnego kodu hobbystów!)
public void OutputError(string message)
{
string standardMessage = "Something went WRONG!. [ But I'm not telling you what! ]";
string defaultMsgBoxTitle = "Aaaaarrrggggggggggg!!!!!";
string dosBoxOutput = "\n\n*** " + defaultMsgBoxTitle + " *** \n\n Message was: '" + message + "'\n\n";
AppTypeChoice appType = DataDefs.AppType;
DebugLevelChoice level = DataDefs.DebugLevel;
// Decide how much info we should give out here...
if (level != DebugLevelChoice.None)
{
// Give some info....
if (appType == AppTypeChoice.Windows)
MessageBox.Show(message, defaultMsgBoxTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
else
Console.WriteLine(dosBoxOutput);
}
else
{
// Be very secretive...
if (appType == AppTypeChoice.Windows)
MessageBox.Show(standardMessage, defaultMsgBoxTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
else
Console.WriteLine(standardMessage);
}
// Decide if app falls over or not..
if (DataDefs.StopOnError == true)
Environment.Exit(0); // UNREACHABLE CODE HERE
}
Ponadto, choć mam swoją uwagę, aby uzyskać typ aplikacji, ja tylko przy stałej na szczycie plik (np. AppTypeChoice.Console w aplikacji Console itp.) - czy istnieje lepszy sposób robienia tego (mam na myśli dowiedzieć się w kodzie, czy jest to aplikacja DOS lub Windows)?
Zauważyłem również, że mogę używać skrzynki z pełną ścieżką w aplikacji Console ... Jak źle to zrobić (mam na myśli, czy otrzymam smołę i opierzałem się, gdy inni programiści to zobaczą? !)
Dzięki za pomoc
Czy to cała metoda? –
@Raj: Spójrz na ostatnią linię. – SLaks
Dziękuję SLAKS! –