Skip to content

Commit

Permalink
Exception handling with continuations
Browse files Browse the repository at this point in the history
  • Loading branch information
conradakunga committed Sep 24, 2018
1 parent db8b4c4 commit 78c03d7
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 0 deletions.
28 changes: 28 additions & 0 deletions Chapter11/08 - Continuation Exception Handling/.vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/bin/Debug/netcoreapp2.1/TaskSample.dll",
"args": [],
"cwd": "${workspaceFolder}",
// For more information about the 'console' field, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#console-terminal-window
"console": "internalConsole",
"stopAtEntry": false,
"internalConsoleOptions": "openOnSessionStart"
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
}
,]
}
15 changes: 15 additions & 0 deletions Chapter11/08 - Continuation Exception Handling/.vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/TaskSample.csproj"
],
"problemMatcher": "$msCompile"
}
]
}
24 changes: 24 additions & 0 deletions Chapter11/08 - Continuation Exception Handling/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using System;
using System.Threading.Tasks;

namespace TaskSample
{
class Program
{
static void Main(string[] args)
{
var taskWork = Task.Factory.StartNew(() => throw new ApplicationException("Error!"));

var failure = taskWork.ContinueWith(prior =>
{
Console.WriteLine($"I failed: {prior.Exception.InnerException.GetType().Name}");
}, TaskContinuationOptions.OnlyOnFaulted);

var success = taskWork.ContinueWith(prior =>
{
Console.WriteLine($"I failed: {prior.Exception.InnerException.GetType().Name}");
}, TaskContinuationOptions.NotOnFaulted);
Console.ReadLine();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>

</Project>

0 comments on commit 78c03d7

Please sign in to comment.