---
title: "Fånga undantag som kastas i asynkron metod"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/180524-fånga-undantag-som-kastas-i-asynkron-metod"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Peeer"
published: "2009-10-02T14:36:50.000Z"
updated: "2009-10-05T20:44:27.000Z"
replies: 3
views: 441
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/180524-fånga-undantag-som-kastas-i-asynkron-metod"
---

# Fånga undantag som kastas i asynkron metod

## #1 — Peeer, 2009-10-02T14:36Z

Ännu en nybörjarfråga från en som försöker lära sig.

Jag håller på att göra om ett funktionsanrop från synkront till asynkront. Funktionen kastar undantag då och då, vilket jag tidigare har fångat genom:

```
try {
    a = DoStuffInDatabase(variable);
} catch (Exception e) {
    // Undantag kastades. Lös problemet!
}
```

 Men hur fångar jag mina undantag om jag gör anropet asynkront? Jag har provat att försöka fånga både vid anropet och när resultatet ska hämtas, men det fungerar inte.

```
try {
    DoStuffDelegate dlgt = new DoStuffDelegate(DoStuffInDatabase);
    AsyncCallback cb = new AsyncCallback(cbFunc);
    dlgt.BeginInvoke(variable, cb, dlgt);
} catch (Exception e) {
    // Undantag kastades. Lös problemet!
}

....
private void cbFunc(IAsyncResult result) {
    try{
        DoStuffDelegate dlgt = (DoStuffDelegate) result.AsyncState;
        a = dlgt.EndInvoke(result)
    }catch (Exception e) {
        // Undantag kastades. Lös problemet!
    }
}
```

Hur gör man tro? :)

Permalänk: https://www.webforum.nu/p/180524

## #2 — Nickemannen, 2009-10-02T20:30Z

```
AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledException
```

Permalänk: https://www.webforum.nu/p/2206738

## #3 — Peeer, 2009-10-05T11:24Z

Hmm, gick inte så bra det där. Provade först att lägga till den koden precis innan jag gör mitt asynkrona anrop, men det blev ingen skillnad. Sen provade jag att lägga den i min defaultkonstruktor till mitt huvud-window. Ingen skillnad där heller, undantaget fångas inte. Googlade upp ett [exempel](http://www.switchonthecode.com/tutorials/csharp-tutorial-dealing-with-unhandled-exceptions). Där har de lagt koden i main-metoden, i wpf finns ingen main-metod, var lägger jag den då?

/Per

Permalänk: https://www.webforum.nu/p/2206968

## #4 — Nickemannen, 2009-10-05T20:44Z

Du ovverridar OnApplicationStartup eller vad den heter i App.xaml.cs :)

Permalänk: https://www.webforum.nu/p/2207040

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/180524-fånga-undantag-som-kastas-i-asynkron-metod
