같은 유형의 예외를 발생시키는이 클래스가 있는데이 예외를 캡처하고 적절한 오류 메시지를 표시하는 방법은 무엇입니까? 여기 내가 지금하는 일이 있습니다.예외 - 메서드가 두 개 이상 올릴 때 예외 구분
public bool ChangePassword(oldPassword,newPassword)
{
if(oldPassword != savedInDatabase)
{
throw new ArgumentException("Your old password is not same as one saved in our database")
}
if(string.IsNullOrEmpty(oldPassword) || string.IsNullOrEmpty(newPassword))
{
throw new ArgumentException("Your old or new password is empty of null");
}
}
그리고 당신이 다른 예외 유형을 던지는 고려해 볼 수 있습니다
try
{
}
catch(ArgumentException ex)
{
if(ex.Message.contains("Your old or"))
{
messagebox.show("Either your old or new password is empty or null")
}
...
}
왜 돈 : 당신이 정말로 사용자 정의 예외의 길을 가고 싶은 경우
그러나, 그 다음 또 다른 옵션은 같은 모든 다른 옵션과
enum
소요 하나의 사용자 정의 예외를 만드는 것입니다 원래 예외의 메시지 만 표시합니까? 그런 문자열을 찾는 것은 대개 나쁜 생각입니다. –@Oded 잘 할 수는 있지만, 그렇다면 어떻게 ArgumentNullException 형의 다른 예외를 식별 할 수 있습니까? 나는 더 나은 아이디어가 예외를위한 친숙한 메시지를 사용하고 그들을 표시하는 것입니다. – Deeptechtons
@PeetBrits 왜 지금 당장 생각하고 있는지 원래의 예외 메시지를 표시하지 않는 이유는 무엇입니까? 그냥 문자열을 확인하는 것보다는 친숙한 메시지를 사용하십시오. – Deeptechtons