【c# – Control.Invoke展开外部异常并传播内部异常】教程文章相关的互联网学习教程文章

c# – 在UI跨线程操作异常后的Task.ConfigureAwait行为【代码】

我正在玩Task.ConfigureAwait,以便更好地理解什么是超越引擎盖.所以我在将一些UI访问内容与ConfigureAwait结合起来时遇到了这种奇怪的行为. 下面是使用简单窗体的示例应用程序,其中包含1个按钮,后跟测试结果:private async void btnDoWork_Click(object sender, EventArgs e) {List<int> Results = await SomeLongRunningMethodAsync().ConfigureAwait(false);int retry = 0;while(retry < RETRY_COUNT){try{// commented on test...

c# – 如何更改默认值“抱歉,我的机器人代码有问题”异常消息?【代码】

我需要更改默认的“抱歉,我的机器人代码有问题”异常消息.这似乎是一个有点复杂的过程.我试图像在博客文章中所说的那样做:http://wp.sjkp.dk/change-the-sorry-my-bot-code-is-having-an-issue-in-microsoft-bot-framework/ 我不了解依赖注入或控制反转,所以这成为一个相当大的挑战.我正在使用Bot Builder版本3.5.5. 这是博客中的代码,我尝试在我的机器人上使用: PostUnhandledExceptionToUser类:using Microsoft.Bot.Builder.D...

c# – 如何明确表示不抛出异常?【代码】

这可能是一个广泛的问题,但最近我想知道以下内容:在我们的C#后端,我们有很多地方将一些代码包装在try / catch块中,特别是调用外部WcF服务.其中一些调用对应用程序至关重要,因此在catch块中我们记录错误并重新抛出,如:catch(Exception ex) {_logger.Error("Some good error message");throw ex; }另一方面,我们允许失败的服务,但我们仍然想记录错误,所以它们看起来像:catch(Exception ex) {_logger.Error("Some good error messa...

c# – 通过HTTP调用Azure功能150次导致异常【代码】

我在Azure上运行asp.net mvc Web App.在一个方法中,我对Azure Function Web API进行了几次HTTP调用.在此Azure函数中,我使用DbContext将新记录插入数据库.// Method in web application making http requests to azure function web api public async Task CreateRecords() {int amountOfCalls = 150;var allTasks = new List<Task<HttpResponseMessage>>();for (int i = 0; i < amountOfCalls; i++) {var task = HttpClientInstanc...

如何处理C加载的C#DLL中的异常

我有一个在C#中创建的DLL,目的是为第三方C#库提供COM接口.我有一个使用该COM接口的C程序,以便它可以与C#库进行通信.有时,异常会在C#端被抛出,而我在C端返回的所有内容都是来自COM调用的HRESULT,表示“异常发生”(或者说是这种情况).有没有办法让我获取整个异常信息,以便我可以在我的C应用程序日志中打印信息性消息?如果没有,是否有什么我可以在C#端拦截所有异常,然后它们触发任何机制将HRESULT返回到C,以便我可以在C#端登录它们?...

c# – 记录异常属性【代码】

是否可以使用NLog记录异常的属性? 例如,SocketException具有ErrorCode,HResult,NativeErrorCode等属性,这些属性仅适用于此类异常.可以在没有显式记录(即不使用Log(e.ErrorCode))的情况下记录它们并使用代码中的ErrorException吗?默认情况下,Exception layout renderer只在异常上调用ToString.解决方法:我不知道这是不是一个好主意,但你可以编写自己的LayoutRenderer.为了简单起见,我刚刚编写了一个继承自ExceptionLayoutRenderer...

c# – GDI LockBits()/ UnLockBits()异常

我的程序是用C#编写的,并用低级别的位图进行操作.一切正常,但有时(非常罕见,但稳定)异常“通用GDI异常”发生,并且很难重现这种情况. 函数LockBits()和UnLockBits()发生异常.它包含错误代码“-2147467259”.在GDI的语言上,它将是方法GdipBitmapLockBits并返回代码7或1. 什么样的原因可能导致这种情况? 任何答案都非常感谢.解决方法:GDI对象不是线程安全的,并且在没有同步的情况下从多个线程使用它们肯定会导致崩溃.为了完整起见,我...

C#Vlc.DotNet库 – 空引用异常【代码】

最近偶然发现了这篇文章,同时试图决定将VLC播放器变成C#的最佳方式. Does VLC media player have a C# interface? 我下载了dll文件并将它们导入到我的项目中,但后来意识到我并不知道如何使用它们.有没有人得到这个代码的Windows窗体示例?试用的代码如下所示 – Vlc.DotNet.Core.Medias.MediaBase media = newVlc.DotNet.Core.Medias.PathMedia(@"C:\Users\...\SampleVideos\Wildlife.wmv");Vlc.DotNet.Forms.VlcControl vlcContro...

c# – 带有Outlook互操作的OpenSharedItem在Office 2003中引发奇怪的异常,适用于Office 2008【代码】

我正在使用Office interop API打开从outlook保存的.msg文件,然后显示一个回复窗口以允许用户回复它. 运行Office 2003时,OpenSharedItem(pathToMSGFile); call抛出以下异常:Unhandled Exception: System.AccessViolationException: Attempted to read or writeprotected memory. This is often an indication that other memory is corrupt.at Microsoft.Office.Interop.Outlook._NameSpace.OpenSharedItem(String Path)at Outlook...

c# – 捕获当前线程中的所有异常【代码】

在我的Web应用程序中,我有单向异步WCF服务.在这个服务中,我想捕获所有异常,就像我在global.asax Application_Error中所做的那样.我试图处理这些事件:AppDomain.CurrentDomain.UnhandledException += (s,e) => { //some logic }; AppDomain.CurrentDomain.FirstChanceException += (s,e) => { //some logic };甚至试过://this one is for Win Forms Application Application.ThreadException += (s,e) => { //some logic };和//th...

c# – AppDomain未处理的异常【代码】

有很多主题涉及这个问题.但是我有一个问题. 我将程序集加载到新的AppDomain中,如下所示:public void Run() {//There's the problem.//As Panos Rontogiannis mentioned the thread is created in default AppDomainnew Thread(RunApp).Start(); }private void RunApp()try{AppDomain.CreateDomain("domain name").ExecuteAssembly("path to assembly");}catch (Exception _e){MessageBox.Show("Unhandled Exception.\n" + _e);} }...

c# – 由于捕获到异常而显示WinRT MessageDialog的正确方法是什么?【代码】

由于捕获的异常,显示消息对话框的正确方法是什么? 我最初尝试过try {await DoSomething(); } catch(InvalidOperation ex) {await MessageDialog(ex.Message).ShowAsync(); } catch(CommunicationException) {await MessageDialog(StringResourceLoader.LoginError).ShowAsync(); }这不起作用,因为你无法等待try块内部.将await命令输出使编译器显示以下警告:Because this call is not awaited, execution of the current method c...

c# – FluentValidation和异常消息的集成测试【代码】

我使用流利验证如下:public class ProjectValidator : AbstractValidator<Project> {public ProjectValidator(){RuleFor(project => project.Name).NotEmpty().WithMessage("Project name cannot be empty.");} }在某些服务中:IValidator<Project> _projectValidator; _projectValidator.ValidateAndThrow(project);集成测试的一部分:var validationException = Assert.Throws<ValidationException>(() => projectRepository.Sa...

c# – Delegate.DynamicInvoke – 捕获异常【代码】

我使用以下方法调用委托(动态可配置服务):public void CallService (Delegate service, IContext ctx) {var serviceArgs = CreateServiceArguments(service, ctx);service.DynamicInvoke(serviceArgs); }此时我想捕获在被调用的服务方法中发生的所有异常,但是,我不想捕获由于DynamicInvoke调用而发生的任何异常.例如.: > service delegate throws DomainException – >抓住例外> DynamicInvoke()抛出MemberAccessException,因为...

c# – 多线程异常冒泡

我有一个处理事件回调的应用程序,在我的例子中,它是SerialPort上的DataReceived事件.在该回调中,我有业务逻辑,需要在另一个线程上引发异常.该线程正在等待事件监听器向其发送消息,或者让它知道发生了异常. 跨线程保留堆栈跟踪的最佳方法是什么? 将线程传递给工作线程并重新抛出它会导致堆栈跟踪丢失.解决方法:>这取决于您的方法,例如TPL:throw – >AggregateException.> BackGroundWorker – >你必须要注意结果中的错误.>主题 ...