2016-05-18 6 views
0

Ich habe eine Konsolenanwendung, die in einer anderen App ausgeführt wird. Das Problem ist, dass die zweite App die Ausnahmen, die zuerst ausgelöst werden, nicht abfangen kann (wird mit Process ausgeführt). Also muss ich eine Klasse schreiben, die meinen Rückgabecode und die entsprechende Nachricht enthält. So kann die App, die meine ausführbare Datei ausführt, sie verwenden und abhängig vom Rückgabecode eine Fehlermeldung anzeigen. Aber ich weiß nicht, wie das gemacht werden sollte.C# Wie zu organisieren Fehlermeldung zwischen zwei app

+0

Warum Sie nicht starten Sie Ihre 'Process' innerhalb eines' Try-catch' und den Fehler fangen da? –

+0

'process.ExitCode' enthält die Rückkehr von' int main() '(oder' Environment.Exit (X) ') –

+0

Sie können alle Ausnahme in jeder Anwendung abfangen.Wollen Sie es? – mohsen

Antwort

0

Dies ist eine alte Post, über die ich gestolpert bin, aber warum nicht antworten?

Ich denke, was Sie suchen, ist der Fehler-Stream. In Windows und den meisten anderen Systemen referenziert das Betriebssystem es als stderr. Ich poste einige Links zum Lesen, aber im Wesentlichen geben separate Ausführungsumgebungen oder Anwendungen nur Codes zurück, die dem Betriebssystemwetter mitteilen, dass eine Anwendung nicht erfolgreich beendet wurde (0) oder dass ein Fehler (-1) aufgetreten ist. In Fenstern gibt es zwei getrennte Ströme stdout, die wir Ausführungsnachrichten schreiben, oder stderr, die wir auch Fehler schreiben. Diese Dämpfe können dann von Ihrer anderen Anwendung gelesen werden. auf dieser Schau für weitere Informationen:

How to capture a Processes STDOUT and STDERR line by line as they occur, during process operation. (C#)

https://msdn.microsoft.com/en-us/library/system.diagnostics.process.standarderror(v=vs.110).aspx

https://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput(v=vs.110).aspx

Je nach Bedarf gibt es einige andere, komplexere Lösungen wie die „Interoperabilität Library“ oder eine Datei zu schreiben.

Interop Info: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/interop/

Verwandte Themen