-
Notifications
You must be signed in to change notification settings - Fork 843
Open
Labels
Area-Debugstepping, debug points, stacks and morestepping, debug points, stacks and moreFeature Improvement
Milestone
Description
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)
Metadata
Metadata
Assignees
Labels
Area-Debugstepping, debug points, stacks and morestepping, debug points, stacks and moreFeature Improvement
Type
Projects
Status
New