dea*_*vmc 4 c# exception-handling windows-phone-7
我正在研究这两种方法.一个节省一个负载.显然两者都需要某种错误处理,所以我实现了一些"捕获所有处理".现在,搜索的脚跟是,接下来发生的事情是在运行时,错误发生的位置.因此,我想处理调用者中的错误,一级以上.这样我可以针对不同情况使用不同的逻辑.
一个例子是.如果我在第一次运行时检查负载并且它失败了,我可以假设他们的内存可能已被清除.但是如果我在执行期间尝试加载,我可以假设内存没有被清除(通过正确的方式)并且必须启动某些内容.
public void SaveToStorage(AccountCollection Collection)
{
try
{
var storage = IsolatedStorageSettings.ApplicationSettings;
storage["defaultCollection"] = Collection;
storage.Save();
}
catch (Exception ex)
{
// Do something meaningful here
}
}
public AccountCollection LoadFromStorage()
{
try
{
AccountCollection collection;
var storage = IsolatedStorageSettings.ApplicationSettings;
storage.TryGetValue("defaultCollection", out collection);
return collection;
}
catch (Exception ex)
{
// Do something meaningful here
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
基本上我问我可以将错误提交给调用者但仍保留原始错误详细信息.
编辑:约翰和安德鲁都给出了正确的答案.安德鲁将得到绿色标记,因为我想在原始类中做一些其他通用清理.
And*_*ell 11
对于所有关于不捕获的负面评论,他表示他希望在抛出异常的方法中进行一些展开,但也要继续向上堆栈,以便其他方法可以执行某些操作.他没有抓住异常只是为了再次抛出它,他想要执行一些动作,然后再次抛出它.
catch (Exception ex)
{
// Do something
throw;
}
Run Code Online (Sandbox Code Playgroud)
编辑
出于某种原因,我将其视为C++,因此删除了有关复制异常的评论.