URL から Facebook ページ ID を取得するなど、一般的に行われるタスクのために Facebook アプリケーションで使用されるユーティリティ クラスを作成しています。以下のコードが例外をスローおよびキャッチする正しい方法であるかどうかはわかりません。誰かアドバイスしてくれませんか、ありがとう。
ユーティリティ クラス:
public static class FacebookUtilities
{
public static string GetPageIDFromGraph(string pageUri, string accessToken)
{
try
{
FacebookClient client = new FacebookClient(accessToken);
dynamic result = client.Get(GetPageIDFromUri(pageUri), new { fields = "id" });
return result.ToString();
}
catch (FacebookOAuthException)
{
throw;
}
catch (FacebookApiException)
{
throw;
}
}
public static string GetPageIDFromUri(string pageUri)
{
if (pageUri.Contains('/'))
pageUri = pageUri.Substring(pageUri.LastIndexOf('/') + 1);
if (pageUri.Contains('?'))
return pageUri.Substring(0, pageUri.IndexOf('?'));
else
return pageUri;
}
}
プログラム クラス、テスト中: - 「入力」と「出力」は単なるテキスト ボックスです。
private void btnGetPageID_Click(object sender, EventArgs e)
{
try
{
output.Text = FacebookUtilities.GetPageIDFromGraph(input.Text, "Some Access Token Goes Here");
}
catch (FacebookOAuthException ex)
{
if (ex.ErrorCode == 803)
{
output.Text = "This page does not exist";
}
}
catch (FacebookApiException ex)
{
if (ex.ErrorCode == 100)
{
output.Text = "The request was not supported. The most likely cause for this is supplying an empty page ID.";
}
}
}
呼び出し元のクラスが例外をキャッチして必要な処理を実行できるように、ユーティリティ クラスから例外を単純に再スローするのは正しいですか?