Task.IsFaulted fängt keine Ausnahme in meinem .Net-Kern ab

MVC

Task.IsFaultedist keine Ausnahme. Es wird an einen else-Block gesendet, auch wenn die Bedingung falsch ist. Können Sie mir bitte vorschlagen, wo ich falsch mache. Ich habe versucht, es zu implementieren, try... catchaber es funktioniert immer noch nicht.

public async Task<string> SendEmailAsync(string userid, string fullname, string comment)
{
    string contentRootPath = _hostingEnvironment.ContentRootPath;

    string json = System.IO.File.ReadAllText("appsettings.json");
    JObject obj = JObject.Parse(json);

    string email = (string)obj["SendEmailTo"];
    string subject = "Feedback by: " + fullname + " (" + userid + ")";

    //  await _emailSender.SendEmailAsync(contentRootPath, email, subject, comment, userid, fullname);

    var result = _emailSender.SendEmailAsync(contentRootPath, email, subject, comment, userid, fullname);

    string responseString = "";
    if (result.IsFaulted)
    {
        try
        {
            responseString = @" 
                <!DOCTYPE html>
                <html>
                    <p>Sorry, your feedback was not completed successfully</p>
                </body>
                </html>";
        }
        catch
        {
            responseString = @" 
                <!DOCTYPE html>
                <html>
                    <p>Feedback submitted successfully.</p>
                </body>
                </html>";
        }
    }

    return await Task.FromResult<string>(responseString);
}
ScheuNZ

IsFaultedwartet nicht, bis die Aufgabe abgeschlossen ist oder ein Fehler aufgetreten ist, sondern überprüft nur den aktuellen Status der Task. In Ihrem Fall senden Sie asynchron eine E-Mail, warten nicht auf den Abschluss dieses Vorgangs und testen dann den Status einer Taskwahrscheinlich noch laufenden (und noch nicht fehlerhaften) E-Mail .

Um dies zu beheben, können Sie einen erwarteten Anruf in einen try/catch-Block einschließen...

try
{
    await _emailSender.SendEmailAsync(contentRootPath, email, subject, comment, userid, fullname);
}
catch (Exception exception)
{
    return @"<!DOCTYPE html>
<html>
    <p>Sorry, your feedback was not completed successfully</p>
</body>
</html>";
}

return @"<!DOCTYPE html>
<html>
    <p >Feedback submitted successfully.</p>
</body>
</html>";

... oder berücksichtigen Sie die Task<bool>Rückgabe von Methoden, bei denen Sie das erfolgreiche/fehlgeschlagene Ergebnis testen können, sobald die Aufgabe abgeschlossen ist, z

public async Task<string> SendEmailAsync(string userid, string fullname, string comment)
{
    string contentRootPath = _hostingEnvironment.ContentRootPath;

    string json = System.IO.File.ReadAllText("appsettings.json");
    JObject obj = JObject.Parse(json);

    string email = (string)obj["SendEmailTo"];
    string subject = "Feedback by: " + fullname + " (" + userid + ")";

    async Task<bool> SendEmailAsync()
    {
        try
        {
            await _emailSender.SendEmailAsync(contentRootPath, email, subject, comment, userid, fullname);
        }
        catch (Exception exception)
        {
            // TODO: Log exception etc.
            return false;
        }

        return true;
    }

    var succeeded = await SendEmailAsync();

    if (succeeded)
    {
        return @"<!DOCTYPE html>
<html>
    <p>Feedback submitted successfully.</p>
</body>
</html>";
    }
    else
    {
        return @"<!DOCTYPE html>
<html>
    <p>Sorry, your feedback was not completed successfully</p>
</body>
</html>";
    }
}

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

@ try / @ catch fängt keine Ausnahme ab

UncaughtExceptionHandler fängt keine Ausnahme ab

Try / Catch fängt keine Ausnahme ab

Oracle fängt keine Ausnahme ab

Python Requests Mock fängt keine Timeout-Ausnahme ab

Warum fängt mein Code keine Ausnahme ab?

C# fängt keine "verschachtelte" benutzerdefinierte Ausnahme ab

JUnit-Test fängt keine Ausnahme ab

Flurl & xUnit fängt keine Ausnahme mit wait ab

@ try @ catch-Block fängt keine innere Ausnahme ab

Scala Try-Catch fängt keine Ausnahme ab

Try-Catch fängt keine Ausnahme ab

ObjectDoesNotExist fängt keine DoesNotExist-Ausnahme ab

Entity Framework fängt keine SQL-Ausnahme ab

C # .net Core fängt benutzerdefinierte Ausnahme ab

Kamel fängt keine Ausnahme

Mailkit.Net hängt an smtpClient.ConnectAsync(), wirft keine Ausnahme bis zum Task-Timeout

Der Basisklassenfang fängt keine Ausnahme ab, selbst wenn er vor dem abgeleiteten Klassenfang angezeigt wird

Promise.catch () fängt im AngularJS-Komponententest keine Ausnahme ab

Der C ++ Try-Catch-Block fängt keine Hardware-Ausnahme ab

doOnError fängt die Ausnahme nicht ab

Python fängt eine benutzerdefinierte Ausnahme ab

Try Block fängt falsche Ausnahme ab

Safari fängt keine Ausnahme ab, wenn versucht wird, mit Javascript try / catch auf das übergeordnete Fensterobjekt zuzugreifen

Der DefaultUncaughtExceptionHandler des Threads fängt keine Ausnahme ab, die in der AlertDialog onClick () -Methode ausgelöst wurde

CookieJar fängt keine eingehenden Cookies ab

Warum fängt Catch keine Fehler ab?

Benutzerdefinierte Ausnahmeklasse fängt keine Ausnahmen ab

Firebase fängt keine Fehler ab

TOP Liste

  1. 1

    So verschieben Sie ein Bild in Flutter/Dart mit einem Draggable

  2. 2

    Unity Build-Fehler: Der Name 'EditorUtility' ist im aktuellen Kontext nicht vorhanden

  3. 3

    TypeAhead.js zeigt keine Ausgangsschienen an?

  4. 4

    Deklarieren einer nicht initialisierten Variablen in der Klassendefinition in Python

  5. 5

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  6. 6

    spring-data-jpa: ORA-01795: Die maximale Anzahl von Ausdrücken in einer Liste beträgt 1000

  7. 7

    Warum funktioniert Phantomjs nicht mit dieser Site?

  8. 8

    Interpolieren Sie mit Python die 2D-Matrix entlang der Spalten

  9. 9

    numpy: Berechnen Sie die Ableitung der Softmax-Funktion

  10. 10

    Wie vermeide ich, dass die gesamte App neu geladen wird, wenn Nav.Link von React-Bootstrap verwendet wird?

  11. 11

    MongoDB eingebettetes Dokument unterscheiden und filtern

  12. 12

    Aktualisieren des Werts im Json-Objekt in Python

  13. 13

    Warum funktioniert das Umgebungslicht in diesem Beispiel nicht?

  14. 14

    Python gibt einen Fehler aus, dass eine Datei nicht vorhanden ist, wenn dies eindeutig der Fall ist

  15. 15

    Wie verwende ich Format-Table ohne Abschneiden von Werten?

  16. 16

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  17. 17

    Überprüfen Sie, ob der ausgewählte Wert 'YES' ist, wenn ja, aktivieren Sie ein Steuerelement mit Javascript

  18. 18

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  19. 19

    Holen Sie sich verwandte Pillen Inhalt mit angeklickten img in Angular

  20. 20

    Eclipse Oxygen - Projekte verschwinden

  21. 21

    Wie aktualisiere ich ein Feld in einer Raumdatenbank mit einem Repository und einem Ansichtsmodell?

heißlabel

Archiv