- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
public static string Handle(System.Exception exception)
{
try
{
throw exception;
}
catch (System.Net.WebException ex)
{
...
}
catch (System.Web.Services.Protocols.SoapHeaderException ex)
{
...
}
catch (System.Web.Services.Protocols.SoapException ex)
{
...
}
catch (ArgumentNullException ex)
{
...
}
catch (NullReferenceException ex)
{
...
}
catch (Exception ex)
{
...
}
}
Nyashka 19.01.2012 20:56 # 0
Lure Of Chaos 20.01.2012 01:02 # −1
guest 20.01.2012 01:09 # 0
shtaff 20.01.2012 10:09 # +1
guest 20.01.2012 10:23 # −1
shtaff 20.01.2012 10:26 # 0
guest 20.01.2012 10:43 # +1
Тема очень холиварная, возрат кода ошибок vs исключения, поэтому не будем обсуждать.
Если этот код испльзуется в нескольких местах, то это нормальный код, так как каждый раз не пишешь портянку из catch, читается и понимается проще.
А те кто до этого ответил похоже исключения с иерархией и нормальной обработкое не встречали в своих проектах.
Так что код нормальный и этот подход можно брать на вооружение при соблюдении условий, исключений несколько, их надо однотипно обрабатывать и это нужно делать в нескольких местах.
shtaff 20.01.2012 10:46 # 0
Лично мне не нравится очень этот подход ещё и тем, что при отладке нереально увидеть настоящее место генерации исключения, всегда указывает на строку с throw exception, я переделал на switch (exception.GetType().ToString())
В кейсах полностью уточнённые названия классов, и ничего, работает, а немного ускорилось даже.
guest 20.01.2012 11:01 # −1
Настрой отладчик (Debug\Exceptions) чтобы отлавливал исключения в месте выброса и не мучайся.
А так exception filter не только в С# применяется и я ничего говнистого в этом подходе не вижу.
shtaff 20.01.2012 11:11 # +1
MaksTR 11.02.2012 01:52 # +1
public static string Handle(System.Exception exception)
{
if (exception is System.Net.WebException)
{
...
}
else if(exception is System.Web.Services.Protocols.SoapHeader Exception)
{
...
}
... и так далее. зачем повторно генерировать ошибку (это занимает МНОГО времени)??? надо проверять на соответствие классу ошибки.
P.S. и, не мешало бы, неймспейсы объявлять, это существенно снижает объем кода :)
guest8 09.04.2019 12:32 # −999