プログラミングの経験はあまりありませんがOO
、学びたいと思っています。今日は、自分の観察が正しければ、エラー処理のスキルを向上させることができると思う状況になっています。
コードが論理的に2つの部分に分かれているイベントがあります:
private void btnSave_Click(object sender, EventArgs e)
{
IList<AppConfig> AppConfigs = AppConfigService.All().Where(a => (a.IsActive == true) && (a.ConfigProperty == "MaterialImages")).ToList();
string ImageNameFilter = txtCode.Text;
if (!ucFileExplorer.IsSavedImage(AppConfigs, ImageNameFilter))
{
MessageBox.Show("Error");
return;
}
if (Save())
{
LoadForm<Materials>();
}
}
2番目の部分はSave()
メソッドを呼び出すだけですが、私の質問は最初の部分についてです。そこで、で選択した画像をコピーするメソッドを呼び出します。OpenFileDialog
ロジック全体は、ファイルの参照用に作成したユーザーコントロールにあります。これは、さまざまな形式で使用するためです。実際に対処する方法は次のとおりです。
public bool IsSavedImage(IList<AppConfig> AppConfigs, string ImageNameFilter)
{
bool IsCopied = false;
try
{
string imgPath = AppConfigs[0].ConfigValue.ToString();
File.Copy(selectedFile, imgPath + "\\" + ImageNameFilter + slectedFileName + ".jpeg");
IsCopied = true;
}
catch (IOException copyError)
{
MessageBox.Show("Error saving image!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
return IsCopied;
}
そして、ここから私の質問を始めましょう。ここで句が必要だと思います。try-catch
これは、実際の実行が行われ、正しいステータス(trueまたはfalse)を返すのが簡単になるためです。しかし、実際copyError
は呼び出し元のメソッド(この場合は私のbtn Clickイベント)で処理する必要があると思います。したがって、2つの質問があります。この例外を処理する正しい方法は何ですか。また、メソッドが呼び出される場所に例外を渡したい場合は、どうすればよいですか。