我正在使用此方法:DatagramSocket.BindEndpointAsync()
我怎么知道它可以扔什么类型的例外?这个offical sample显示了所有异常,如下所示:
// Start listen operation.
try
{
await listener.BindServiceNameAsync(ServiceNameForListener.Text);
rootPage.NotifyUser("Listening", NotifyType.StatusMessage);
}
catch (Exception exception)
{
CoreApplication.Properties.Remove("listener");
// If this is an unknown status it means that the error is fatal and retry will likely fail.
if (SocketError.GetStatus(exception.HResult) == SocketErrorStatus.Unknown)
{
throw;
}
rootPage.NotifyUser("Start listening failed with error: " + exception.Message, NotifyType.ErrorMessage);
}
但这似乎非常草率 - 当然有更好的方法吗?
答案 0 :(得分:1)
C#不要求开发人员使用它可以抛出的异常列表标记每个方法(Java有这个要求)。这就是为什么你必须依赖文档或检查源代码并弄清楚它。
在这种情况下,Async / Await不会改变任何内容。