Когда использовать новый тип исключительной ситуации

Вы можете использовать flex-end, flex-start, center для горизонтального выравнивания предметов. Вы должны добавить flex direction :'row' в родительский компонент

buttonContainer: {
justifyContent: 'flex-end',}
15
задан Keith 13 October 2008 в 13:03
поделиться

8 ответов

Постарайтесь не бросать System.Exception или System.ApplicationException сами, поскольку они являются слишком общими.

Для сервисов WCF существуют Контракты Отказа - универсальное исключение, которое можно сказать subscibers обрабатывать.

Флаг интерфейс с:

[FaultContract( typeof( LogInFault ) )]
void LogIn( string userName, string password, bool auditLogin );

Затем, если существует исключение, можно бросить этот определенный отказ:

throw new FaultException<LogInFault>( new LogInFault(), "message" );

Использование [DataContract] сериализация на Вашем отказе - это сохраняет, Вы от необходимости обработать все исключения материала сериализации обычно требуете.

15
ответ дан 1 December 2019 в 02:20
поделиться

Система. Исключение должно только использоваться в качестве базового класса для Исключений, никогда не бросаться непосредственно.

Платформа уже предлагает много допустимых Классов исключений как ArgumentException, ArgumentNullException, InvalidOperationException, FormatException, OverflowException, и т.д.

Вы говорите выполнение материала ввода-вывода таким образом, хорошая идея состоит в том, чтобы посмотреть на подобные операции в платформе (как международный Синтаксический анализ) и выдать те же исключения для подобных ошибок.

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

2
ответ дан 1 December 2019 в 02:20
поделиться

Это не хорошая идея бросить Систему. Исключение. Самой большой причиной этого является эффект, который она имеет на код вызова. Как они должны обработать исключение? Если код вызова собирается обработать исключение, то они должны поймать каждое исключение, которое является, вероятно, не лучшей вещью для них сделать.

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

2
ответ дан 1 December 2019 в 02:20
поделиться

Определенно постарайтесь не бросать Систему. Исключение для чего-либо кроме одноразового кода.

, Если аргумент методу недействителен, бросьте ArgumentException (или некоторое полученное, более определенное исключение). Консультируйтесь с документами для существующих исключений прежде, чем создать Ваше собственное - но может часто быть полезно сделать так. (Можно получить собственный тип исключения из ArgumentException, конечно - если у Вас есть некоторый конкретный тип условия, на которое Вы хотите указать от нескольких мест, создавание нового типа дает больше информации, чем просто помещение его в сообщении об ошибке.)

Теперь обработка ошибок в WCF может отличаться от обработки ошибок в "нормальной" платформе - я предлагаю, чтобы Вы обратились к WCF-определенным документам/книгам для этого.

7
ответ дан 1 December 2019 в 02:20
поделиться

Если Вы бросаете Систему. Исключение, затем вызывающая сторона должна поймать Систему. Исключение. Обе стороны этого нет - нет, так как это оставляет нас говорящий пользователю, "который не работал", а не что-то более полезное.

ArgumentException полезен, если вызывающая сторона передала в недействительном аргументе. Если Ваша функция имеет международный параметр, что необходимо быть четным числом, то Вы бросили бы и ArgumentException, говоря вызывающей стороне, какой параметр был недопустим и почему. Однако, если все аргументы были допустимы, но существует все еще проблема, Вам, вероятно, будет нужно пользовательское исключение. Таким образом, вызывающая сторона может сказать пользователю excatly, что пошло не так, как надо.

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

2
ответ дан 1 December 2019 в 02:20
поделиться

, Каковы инструкции для того, когда создать новый тип исключительной ситуации вместо того, чтобы использовать одно из встроенных исключений в .NET?

, Когда нет никакого подходящего предопределенного класса исключений.
.NET FW очень богат, часто можно найти предопределенное исключение.

, Если сервис не может создать вывод, потому что вход недопустим

Класс ArgumentException (Система)

исключение, которое выдается, когда один из аргументов, предоставленных методу, не допустим.

1
ответ дан 1 December 2019 в 02:20
поделиться

Всегда создавайте новый тип исключительной ситуации (или используйте стандартный тип, если он подходит Вам).

В этом случае можно обработать исключения как группа.

0
ответ дан 1 December 2019 в 02:20
поделиться

Как предыдущие плакаты указали, Вы не должны бросать Систему. Исключение. На самом деле при выполнении FxCop на коде он отметил бы это, как правило, нарушение.

я рекомендую взглянуть на Главу 18 Прикладного Программирования Платформы.NET или главу 19 более свежего CLR через C# (2-й выпуск) для подробного руководства. Richter делает превосходное задание исправления неправильных представлений, которые много разработчиков держит об исключениях.

Обе книги содержат список исключений, определенных Библиотекой классов Платформы. Посмотрите на список и выясните самые определенные исключения, возможные, который может бросить Ваш код. Если можно восстановиться с исключения, сделайте так в том блоке выгоды. Если Вы имеете потребность нескольких блоков выгоды, организуете их от самого определенного до наименее определенного. Создайте пользовательское исключение, если Вы не можете найти один в существующем списке, который удовлетворяет ситуации.

0
ответ дан 1 December 2019 в 02:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: