2

私はこのメソッドを使用しています: DatagramSocket.BindEndpointAsync()

どのタイプの例外がスローされる可能性があるかを知るのはどうですか?? この公式サンプルは、次のようにすべての例外をキャッチすることを示しています。

        // 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); 
        } 

しかし、それはひどくずさんなようです - 確かにもっと良い方法がありますか?

4

1 に答える 1

1

C# では、開発者がスローできる例外のリストで各メソッドをマークする必要はありません (Java にはその要件があります)。そのため、ドキュメントに頼るか、ソース コードを調べて把握する必要があります。

その場合、Async/Await は何も変更しません。

于 2013-01-13T15:42:00.080 に答える