如果标题不清楚,我很抱歉。基本上,我想通过将大量重复的错误处理移到一个地方来干燥我的代码。
我正在调用几种方法,它们都会抛出类似的错误。每个都采用不同的参数,并返回不同的类型。我希望能够做这样的事情:
public class MyClass {
public static ErrorWrapper<Void> Method1(string s1, string s2) {
return Wrapper<Void>(System.Method1, s1, s2);
}
public static ErrorWrapper<string> Method2(string s) {
return Wrapper<string>(System.Method2, s);
}
public static ErrorWrapper<MyOtherClass> Method3(string s, int i) {
return Wrapper<MyOtherClass>(System.Method3, s, i)
}
private static ErrorWrapper<T> Wrapper<T>(Func f, /*parameters?*/) {
try {
return f(parameters);
} catch {
// Handle exceptions
}
}
我需要这样做,因为我正在为一种没有异常处理的语言编写绑定,因此使用错误包装类是安全调用标准库方法的唯一方法。
蝴蝶不菲
收到一只叮咚
相关分类