The following code causes the debugger to break when the exception is thrown. Clearly the exception is handled and so the debugger should not break.
If I continue execution the program continues to run normally; printing "oops" on the screen as expected.
[<EntryPoint>] let main argv = async { try do! Async.Sleep(1) failwith "oops" // The debugger breaks here but it should not as the exception is handled. It should behave like the C# version with | ex -> printfn "%s" (ex.Message) } |> Async.RunSynchronously Console.ReadLine() |> ignore 0
Compare this with the equivalent C# code. This does not break when the exception is thrown. The F# version should behave the same way and not break!
using System; using System.Threading.Tasks; namespace CSharpTaskException { class Program { static void Main(string[] args) { async Task DoSomething() { try { await Task.Delay(1); throw new Exception("oops"); // ****** This does not cause the debugger to break as the exception is handled } catch(Exception ex) { Console.WriteLine(ex.Message); } } DoSomething().Wait(); Console.ReadLine(); } } }
This issue has been moved from https://developercommunity.visualstudio.com/content/problem/314461/debugger-should-not-break-on-f-f-sharp-exception-i.html
VSTS ticketId: 666263
These are the original issue comments:
(no comments)
These are the original issue solutions:
(no solutions)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4