Допустим, я создаю и выполняю System.Net.FtpWebRequest
.
Я могу использовать catch (WebException ex) {}
для перехвата любого исключения, связанного с сетью, которое выдается этим запросом. Но что, если у меня есть какая-то логика, которую я хочу выполнить, только когда выдается исключение из-за (550) file not found
?
Какой лучший способ сделать это? Я мог бы скопировать сообщение об исключении и проверить на равенство:
const string fileNotFoundExceptionMessage =
"The remote server returned an error: (550) File unavailable (e.g., file not found, no access).";
if (ex.Message == fileNotFoundExceptionMessage) {
Но теоретически кажется, что это сообщение может измениться в будущем.
Или я мог бы просто проверить, содержит ли сообщение об исключении «550». Этот подход, вероятно, с большей вероятностью сработает, если сообщение будет изменено (оно, вероятно, все еще будет содержать «550» где-то в тексте). Но, конечно, такой тест также вернул бы true, если текст для некоторого другого WebException
просто содержит «550».
Кажется, что нет способа получить доступ только к номеру исключения. Это возможно?