我正在用c#写一个程序,我刚刚开始使用Exception。我以前做过Java,但我试图不惜任何代价避免异常。我现在明白我不能再逃避了。所以我需要一些建议。我有一个这样的代码:
try
{
//...
}
catch
{
//...
}
//...
try
{
//...
}
catch
{
//...
}
这是一个GUI程序。我想这样做,如果捕获异常,程序将基本上停止所有操作,但不会关闭程序,因此GUI仍然存在,用户可以对发现的问题进行更改。
顺便说一句:我们的讲师会让我们多次失败,所以建议是行不通的
可以定义一个处理程序来捕获所有未处理的异常。确切的机制取决于你正在使用的UI框架。
对于WinForms,你可以这样做
AppDomain.CurrentDomain.UnhandledException += new
UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
// Windows forms exceptions handler
Application.ThreadException += new
ThreadExceptionEventHandler(Application_ThreadException);
http://kenneththorman.blogspot.com/2010/10/windows-forms-net-handling-unhandled.html 对于WPF,您可以这样做
<Application x:Class="UnhandledExceptionHandler.App"
DispatcherUnhandledException="Application_DispatcherUnhandledException">
</Application>
private void Application_DispatcherUnhandledException(object sender,
System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
// Handle the exception
}
http://www.codeproject.com/Articles/90866/Unhandled-Exception-Handler-For-WPF-Applications 以防Eric J。答案太复杂了:
我认为,由于您的prof只允许一个返回语句,因此您将拥有类似服务的东西,该服务执行某些工作并通知调用者状态和可能的错误消息。
如果你可以通过布尔消息,那么以下应该为你工作:
public class Service
{
public bool DoWork()
{
bool success = false;
try
{
//code to do work
success = true;
}
catch(Exception ex)
{
//do something with the ex
success = false;
}
return success;
}
}