Tag: exception处理

有没有办法捕获给定类抛出的所有未处理的exception?

我知道如何捕获给定线程中的所有未处理的exception ,但想知道是否有办法捕获给定类抛出的所有未处理的exception,而不是将每个调用包装在try catch块中。 如果无法做到这一点(可能是这种情况),你会如何达到同样的效果? 为了给出一些上下文,我使用自定义编码服务代理,将应用程序的其余部分与服务数据协定(WCF)分离。 我基本上需要捕获错误,以便我可以提取特定字段(内部描述等),将它们打包成自定义exception并再次抛出它。 任何帮助赞赏。

在未处理的exception之后终止应用程序

我在WPF应用程序中遇到问题。 我写了这段代码: public partial class App : Application { public App() { AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler); } void MyHandler(object sender, UnhandledExceptionEventArgs e) { Exception exception = e.ExceptionObject as Exception; MessageBox.Show(exception.Message, “ERROR”, MessageBoxButton.OK, MessageBoxImage.Error); } … } 但是当发生未处理的exception时,屏幕上会出现很多MessageBox(例外情况发生在定时例程中),关闭其中一个后,Windows会发出一个未处理的exception信号。 如何避免多个MessageBoxes? 如何避免未处理exception的消息? 如何在exception后终止应用程序? 您可以轻松地假设,我想用MessageBox显示一条消息(但只有一条),然后在没有任何其他消息的情况下终止应用程序。 在之前与此论点相关的问题中 , Kyle Rozendo告诉我使用DispatcherUnhandledException。 是否有必要或我编写的代码是否足够? 谢谢。

CLR会处理CLS-Complaint和非CLS投诉例外吗?

仅供我澄清: 我可以在.NET Framework中同时抛出CLS-Complaint和非CLS投诉exception吗?我正在使用C#3.0。 当我抓住exception catch(Exception ex) { } 它只会捕获CLS-Complaintexception吗? RuntimeWrappedException类有什么用(我可以举一个简单的例子吗?)。

什么“只捕捉你可以处理的例外”真的意味着什么?

我的任务是编写一个我正在研究的.NET / C#项目的exception处理策略和指南文档。 我很难接受它。 有很多关于如何/何时抛出,捕获,包装exception的信息,但我正在寻找描述在catch块内部应该进行哪些事情而不是包装和抛出exception。 try { DoSomethingNotNice(); } catch (ExceptionICanHandle ex) { //Looking for examples of what people are doing in catch blocks //other than throw or wrapping the exception, and throwing. } 提前致谢

收集崩溃数据的最佳方法是什么?

因此,我试图从程序中自动收集数据的概念出售 – 即弹出一个对话框,要求用户在出现问题时发送报告。 我在MS Visual Studio C#中工作。 从实现的角度来看,在我的主program.cs文件中放置一个try / catch循环是否有意义? 像这样: try { Application.Run(new myMainForm()); } catch (Exception ex) { //the code to build the report I want to send and to //pop up the Problem Report form and ask the user to send } 或者在整个代码段中放置try / catch循环以捕获更具体的exception类型是否有意义? (我想的不是因为这是一个新的应用程序,并且提出更具体的exception捕获意味着我知道会出现什么问题……我不知道,这就是为什么以上对我来说似乎有意义。) -Adeena

WCFexception处理

如果我的WCF服务中发生exception,那么将该错误传达给客户端的最佳方法是什么? 我应该在服务上登录并重新抛出soapexception吗? 或者我应该记录它并返回用户友好的消息?

“没有找到适合完成此操作的成像组件。”

我编写了一个应用程序,它需要下载* .png文件并将其设置为WPF按钮的背景。 所以,当我运行这个程序时,它面临错误 没有找到适合完成此操作的成像组件。“ 我的代码如下: 第一个应用程序使用WebClient类的对象下载文件: System.Net.WebClient wClient = new System.Net.WebClient(); Uri downloadUri = new Uri(MyUri, UriKind.Absolute); wClient.DownloadFileAsync(downloadUri, “MyImage.png”); wClient.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(wClient_DownloadFileCompleted); 当下载完成事件发生时: ImageBtn.Dispatcher.Invoke(new Action(() => { ImageBrush ib = new ImageBrush(); BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.UriSource = new Uri(“MyImage.png”, UriKind.Relative); bi.EndInit(); ib.ImageSource = bi; ImageBtn.Background = ib; } 注意由于在BackgroundWorker中运行这些代码块,我使用Dispatcher来设置按钮Background属性 所以,当我运行程序时, System.NotSupportedException发生如下: […]

检查C#中的exception捕获

Java要求您捕获所有可能的exception或将它们声明为方法签名中抛出的exception。 这不是C#的情况,但我仍然认为捕获所有exception是一个好习惯。 有没有人知道一个工具可以处理一个C#项目并指出抛出exception但没有被捕获的地方?

如果从C#中的try或catch块返回,是否会执行finally块? 如果是这样,在返回之前或之后?

没有内容可用!

可以为空的对象必须有值吗?

在线: bool travel = fill.travel.Value; 我收到以下错误: 可以为空的对象必须具有值 而且我不确定为什么。 我想要做的就是获取当前错误的旅行数据库中的值。 任何帮助,将不胜感激。 using (var db = new DataClasses1DataContext()) { var fill = (from f in db.expenseHdrs where f.rptNo == getPkRowReport() select f).FirstOrDefault(); txtReportDesc.Text = fill.description; txtPeriod.Text = fill.period; txtPurpose.Text = fill.purpose; bool travel = fill.travel.Value; chkTravel.Checked = travel }