我想找出具有多個結果值的方法的優缺點。最佳實踐返回值vs例外vs枚舉
例如,我正在使用登錄方法。如果登錄成功,它會通過,否則我需要知道它爲什麼失敗。
1.返回true或false(沒有足夠的信息)
bool Login(string user, string password);
2.返回true,如果它是成功的,否則拋出異常
public class UnknownUserException : Exception { }
public class WrongPasswordException : Exception { }
bool Login(string user, string password);
3。什麼都不返回拋出一個異常,如果沒有成功
public class UnknownUserException : Exception { }
public class WrongPasswordException : Exception { }
void Login(string user, string password);
4.返回一個枚舉值
enum LoginResult
{
Successful
UnknownUser,
WrongPassword
}
LoginResult Login(string user, string password);
「登陸」 僅僅是一種示範性情況。我想知道不同實現的優點和缺點,並且在哪些情況下它們或多或少是合適的。
1和2顯然不是值得考慮的。 #3的意義在於通常情況如何,但唯一能夠認識到可能是#4的人在你的情況下更適合你。 – Jon
API是同步還是異步? –
同步,對不起:) – Jan