异常抛出行为
Exception throw behavior
所以我有这个异常,如果出现问题我想抛出。但它的行为很奇怪。
public Calendar LoadCalendar(){
...
if (cal == null)
{
throw new NotImplementedException();
}
_lastPollTime = DateTime.Now;
...
}
我希望在调用 LoadCalendar 的地方抛出此异常。相反,程序停在 DateTime.Now;因为 "NotImplementedException()".
我做错了什么?我怎么能把它扔到方法的末尾呢?
您需要在调用堆栈的某处添加一个 "catch" 子句,它接收抛出的异常并以某种方式处理它。
你可以在你的程序中尝试这个主要功能:
static void Main()
{
try
{
// put existing code here
}
catch( Exception e )
{
}
}
如果没有捕获,异常就无处可去,因此它会导致您的程序终止。
这些处理异常的指南可能对您有用:http://www.codeproject.com/Articles/9538/Exception-Handling-Best-Practices-in-NET
只需订阅App.xaml.cs Class Constructor
中的DispatcherUnhandledException事件,即可处理该事件中的任何应用异常。
public partial class App : Application
{
public App()
{
this.DispatcherUnhandledException += App_DispatcherUnhandledException;
}
void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
////Handle your application exception's here by e.Exception.
}
}
所以我有这个异常,如果出现问题我想抛出。但它的行为很奇怪。
public Calendar LoadCalendar(){
...
if (cal == null)
{
throw new NotImplementedException();
}
_lastPollTime = DateTime.Now;
...
}
我希望在调用 LoadCalendar 的地方抛出此异常。相反,程序停在 DateTime.Now;因为 "NotImplementedException()".
我做错了什么?我怎么能把它扔到方法的末尾呢?
您需要在调用堆栈的某处添加一个 "catch" 子句,它接收抛出的异常并以某种方式处理它。
你可以在你的程序中尝试这个主要功能:
static void Main()
{
try
{
// put existing code here
}
catch( Exception e )
{
}
}
如果没有捕获,异常就无处可去,因此它会导致您的程序终止。
这些处理异常的指南可能对您有用:http://www.codeproject.com/Articles/9538/Exception-Handling-Best-Practices-in-NET
只需订阅App.xaml.cs Class Constructor
中的DispatcherUnhandledException事件,即可处理该事件中的任何应用异常。
public partial class App : Application
{
public App()
{
this.DispatcherUnhandledException += App_DispatcherUnhandledException;
}
void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
////Handle your application exception's here by e.Exception.
}
}