Ругается на обработчик catch
От: DarthSidius  
Дата: 30.10.14 13:33
Оценка:
try {
}
catch {
    | ex is ThreadInterruptedException
    | ex is ThreadAbortException
        => (); // exception catch pattern must be in form of `| e is ExceptionType => handler' or`| e => handler' for System.Exception
    | ex
        => {
        }
}


А так нет:
try {
}
catch {
    | ex is ThreadInterruptedException
        => ();
    | ex is ThreadAbortException
        => ();
    | ex
        => {
        }
}

И это что, получается мне надо два одинаковых обработчика писать?
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 58>>
♠♠♥♠♠♦♥
Отредактировано 30.10.2014 13:41 DarthSidius . Предыдущая версия .
Re: Ругается на обработчик catch
От: hardcase Пират http://nemerle.org
Дата: 30.10.14 14:39
Оценка: 3 (1)
Здравствуйте, DarthSidius, Вы писали:

DS>
DS>try {
DS>}
DS>catch {
DS>    | ex is ThreadInterruptedException
DS>    | ex is ThreadAbortException
DS>        => (); // exception catch pattern must be in form of `| e is ExceptionType => handler' or`| e => handler' for System.Exception
DS>    | ex
DS>        => {
DS>        }
DS>}
DS>


DS>А так нет:

DS>
DS>try {
DS>}
DS>catch {
DS>    | ex is ThreadInterruptedException
DS>        => ();
DS>    | ex is ThreadAbortException
DS>        => ();
DS>    | ex
DS>        => {
DS>        }
DS>}
DS>

DS>И это что, получается мне надо два одинаковых обработчика писать?

Тут PM не настоящий (ограничение IL). Воркэраунд следующий:

    try
    {

    }
    catch
    {
      | ex when ex is ThreadAbortException || ex is ThreadInterruptedException => ()
      | ex => ()
    }
/* иЗвиНите зА неРовнЫй поЧерК */
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.