Какая разница между System.Security.SecurityException и System.UnauthorizedAccessException?

328
07 апреля 2017, 20:34

Конструктор FileInfo выбрасывает оба вышеуказанных исключения. Планируется использовать FileInfo для определения корректности пути по аналогии с этим методом, так как при использовании System.IO.File.Exists(string path) если у вызывающего оператора нет достаточных полномочий на чтение заданного файла, исключения не создаются, а метод возвращает false вне зависимости от существования path. Мне же необходимо четко определять возникающие ошибки.

string fileName = @"C:\Users\J.Doe\example.file";
System.IO.FileInfo fi = null;
try {
    fi = new System.IO.FileInfo(fileName);
} catch (PathTooLongException) {
    // The specified path, file name, or both exceed the system-defined maximum length. 
    // For example, on Windows-based platforms, paths must be less than 248 characters, 
    // and file names must be less than 260 characters.
} catch (NotSupportedException) { 
    // fileName contains a colon (:) in the middle of the string
} catch (SecurityException) {
    // The caller does not have the required permission.
} catch (UnauthorizedAccessException) {
    // Access to fileName is denied. 
}
if (ReferenceEquals(fi, null)) {
  // file name is not valid
} else {
  // file name is valid
  // Check for existence by calling fi.Exists.
}

В чем разница между System.Security.SecurityException и System.UnauthorizedAccessException? При каких обстоятельствах, в данном конкретном случае, возникнет каждое из вышеуказанных исключений?

READ ALSO
Как получить число типа float из двух байт?

Как получить число типа float из двух байт?

Как получить число типа float из двух байт? Есть два байтаДопустим 0x02 - младшая часть и 0x04 - старшая часть

251
Экранирование HTML для отправки POST запросом. C#

Экранирование HTML для отправки POST запросом. C#

Необходимо POST запросом отправить на сервер HTML страницуHTML хранить специальные символы, вроде <,& и тд, из-за которых возникает ошибка 500 сервера

351
Обновление БД через textbox

Обновление БД через textbox

ПриветствуюРаботаю в WForms

242