SIGN IN SIGN UP
cefsharp / CefSharp UNCLAIMED

.NET (WPF and Windows Forms) bindings for the Chromium Embedded Framework

0 0 0 C#
// Copyright © 2015 The CefSharp Authors. All rights reserved.
//
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
using System;
using System.Diagnostics;
using System.Threading.Tasks;
namespace CefSharp.Example.JavascriptBinding
{
public class ExceptionTestBoundObject
{
[DebuggerStepThrough]
private double DivisionByZero(int zero)
{
return 10 / zero;
}
[DebuggerStepThrough]
public double TriggerNestedExceptions()
{
try
{
try
{
return DivisionByZero(0);
}
catch (Exception innerException)
{
throw new InvalidOperationException("Nested Exception Invalid", innerException);
}
}
catch (Exception e)
{
throw new OperationCanceledException("Nested Exception Canceled", e);
}
}
[DebuggerStepThrough]
public int TriggerParameterException(int parameter)
{
return parameter;
}
public void TestCallbackException(IJavascriptCallback errorCallback, IJavascriptCallback errorCallbackResult)
{
const int taskDelay = 500;
Task.Run(async () =>
{
await Task.Delay(taskDelay);
using (errorCallback)
{
JavascriptResponse result = await errorCallback.ExecuteAsync("This callback from C# was delayed " + taskDelay + "ms");
string resultMessage;
if (result.Success)
{
resultMessage = "Fatal: No Exception thrown in error callback";
}
else
{
resultMessage = "Exception Thrown: " + result.Message;
}
await errorCallbackResult.ExecuteAsync(resultMessage);
}
});
}
}
}