2009-10-21 2 views
4

В C# вы можете вернуть целое число в базовый вызывающий объект, используя Environment.Exit (n) (который может быть протестирован, например, с использованием переменной ERRORLEVEL из сценария DOS).Каковы наилучшие практики в отношении кодов ошибок, возвращаемых консольным приложением?

Есть ли лучшие методы в отношении этих кодов?

Я думаю 0 = нет ошибки ... но есть ли номера зарезервированы? Могу ли я использовать отрицательные числа? и т.д.

Спасибо!

ответ

6

Нуль обычно означает, что ошибок не было. Что касается других, я не думаю, что есть зарезервированный набор. Обычно я определяю, что означают разные коды возврата моего приложения и документируют их.

DOS обрабатывает максимум 256 возможных кодов возврата, но на самом деле я сомневаюсь, что вы когда-либо использовали/нуждались в этом.

Вы можете использовать отрицательные значения, но обратите внимание, что отрицательные значения не обязательно означают что-либо отличное от положительных значений.

3

Наиболее распространенное использование кодов возврата, которые я видел, находится в Robocopy. Он может служить руководством для других приложений. Robocopy использует коды возврата как флаги:

0 × 10 Серьезная ошибка. Robocopy не копировать любые файлы. Это либо ошибка использования , либо ошибка из-за недостаточных привилегий доступа к источнику или целевых каталогов.

0 × 08 Некоторые файлы или каталоги не могут быть скопированы (произошли ошибки копирования и предел повторной попытки). Проверьте эти ошибки дальше.

0 × 04 Определены некоторые несоответствующие файлы или каталогов. Изучите журнал вывода . Возможно, необходимо домашнее хозяйство .

0 × 02 Некоторые дополнительные файлы или каталоги были обнаружены. Изучите журнал вывода. Возможно, потребуется обслуживание в номерах.

0 × 01 Один или несколько файлов были скопированы успешно (то есть, у новых файлов ).

0 × 00 Произошла ошибка, и нет копирование осуществлен. Исходный и деревья каталога назначения: полностью синхронизированы.

Смежные вопросы