我想检查App.xaml.cs文件中的互联网连接但是当我在构造函数中执行它时会抛出UnhandledException,为什么?是否有可能做到这一点?当我在例如MainPage.xaml.cs中检查它时,它可以工作。
我的代码:
if (NetworkInterface.GetIsNetworkAvailable())
{
MessageBox.Show("Connected.");
}
调用堆栈:
App.Application_UnhandledException(object sender, System.Windows.ApplicationUnhandledExceptionEventArgs e)
System.Windows.ni.dll!MS.Internal.Error.CallApplicationUEHandler(System.Exception e)
System.Windows.ni.dll!MS.Internal.Error.IsNonRecoverableUserException(System.Exception ex, out uint xresultValue)
System.Windows.ni.dll!System.Windows.Threading.DispatcherOperation.Invoke()
System.Windows.ni.dll!System.Windows.Threading.Dispatcher.Dispatch(System.Windows.Threading.DispatcherPriority priority)
System.Windows.ni.dll!System.Windows.Threading.Dispatcher.OnInvoke(object context)
System.Windows.ni.dll!System.Windows.Hosting.CallbackCookie.Invoke(object[] args)
System.Windows.RuntimeHost.ni.dll!System.Windows.RuntimeHost.ManagedHost.InvokeDelegate(System.IntPtr pHandle, int nParamCount, System.Windows.Hosting.NativeMethods.ScriptParam* pParams, System.Windows.Hosting.NativeMethods.ScriptParam* pResult)
答案 0 :(得分:0)
您应该在try-catch块中包围您显示的代码
例如:
try
{
if (NetworkInterface.GetIsNetworkAvailable())
{
MessageBox.Show("Connected.");
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
这是一个非常粗略的异常处理,你可以在这里阅读更多http://www.dotnetperls.com/exception
答案 1 :(得分:0)
首先,您应该避免在应用程序启动或初始化期间调用消息框。有时它会给你错误:
“显示MessageBox时出错。最常见的原因是在应用程序启动或激活时尝试调用Show。在调用Show之前等待页面导航事件。”
您可以使用 Debug.WriteLine(“已连接。”); 而非 MessageBox.Show(“已连接。”);
其他问题是,如果这不起作用,请检查您是否已提供用于访问互联网连接的功能。
如果我使用您的代码:
if (NetworkInterface.GetIsNetworkAvailable())
{
Debug.WriteLine("Connected.");
}
工作正常。