我想在C#中做这样的事情。我认为这可以使用Delegates或Anonymous Methods。我试过但我不能这样做。需要帮忙。
SomeType someVariable = try {
return getVariableOfSomeType();
} catch { Throw new exception(); }
答案 0 :(得分:1)
您可以创建一个通用辅助函数:
static T TryCatch<T, E>(Func<T> func, Func<E, T> exception)
where E : Exception {
try {
return func();
} catch (E ex) {
return exception(ex);
}
}
然后你可以这样打电话:
static int Main() {
int zero = 0;
return TryCatch<int, DivideByZeroException>(() => 1 / zero, ex => 0);
}
这会在1 / zero
TryCatch
的上下文中评估try
,从而导致评估异常处理程序,它只返回0。
我怀疑这比try
中的辅助变量和catch
/ Main
语句更具可读性,但是如果你有这样的情况,那就是你可以做的它
除了ex => 0
,您还可以使异常函数抛出其他内容。
答案 1 :(得分:0)
你应该这样做:
SomeType someVariable;
try {
someVariable = getVariableOfSomeType();
}
catch {
throw new Exception();
}
答案 2 :(得分:0)
SomeType someVariable = null;
try
{
someVariable = GetVariableOfSomeType();
}
catch(Exception e)
{
// Do something with exception
throw;
}
答案 3 :(得分:0)
你可以试试这个
try
{
SomeType someVariable = return getVariableOfSomeType();
}
catch { throw; }
答案 4 :(得分:0)
SomeType someVariable = null;
try
{
//try something, if fails it move to catch exception
}
catch(Exception e)
{
// Do something with exception
throw;
}