异常抛出行为

时间:2015-01-07 09:14:55

标签: c# exception exception-handling

所以如果出现问题,我想抛出这个异常。但它很奇怪。

public Calendar LoadCalendar(){
    ...

    if (cal == null)
    {
        throw new NotImplementedException();
    }

    _lastPollTime = DateTime.Now;
   ...
}

我希望将此异常抛出到调用LoadCalendar的任何位置。相反,程序在DateTime.Now停止;因为" NotImplementedException()"。

我做错了什么?我怎么能把它扔到方法的最后呢?

2 个答案:

答案 0 :(得分:0)

你需要在调用堆栈的某处添加一个“catch”子句,它接收抛出的异常并以某种方式处理它。

您可以在程序主要功能中尝试此操作:

static void Main()
{
    try
    {
        // put existing code here
    }
    catch( Exception e )
    {
    }
}

没有catch,异常无处可去,因此它会导致程序终止。

处理异常的这些指导可能对您有用:http://www.codeproject.com/Articles/9538/Exception-Handling-Best-Practices-in-NET

答案 1 :(得分:0)

只需订阅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.
    }
}