[Nemerle] Особенности обработки исключений
От: nikov США http://www.linkedin.com/in/nikov
Дата: 26.01.07 15:18
Оценка:
Обнаружил, что в Nemerle исключения обрабатываются не так, как в C#
using System;

module Program {
    static Main() : void { 
        try {
            throw SystemException();
        }
        catch
        {
            | e is SystemException => 
                Console.WriteLine("here");
                throw ApplicationException()

            | e is ApplicationException =>
                Console.WriteLine("there")
        }
    }
}


То есть, исключение брошенное внутри блока catch может быть поймано ниже в том же блоке catch.
В документации ничего по этому поводу не обнаружил.
Это бага или фича?

30.01.07 17:54: Перенесено модератором из 'Декларативное программирование' — IT
Re: [Nemerle] Особенности обработки исключений
От: ie Россия http://ziez.blogspot.com/
Дата: 26.01.07 16:55
Оценка: 6 (1)
Здравствуйте, nikov, Вы писали:

N>Обнаружил, что в Nemerle исключения обрабатываются не так, как в C#

N>
N>            | e is SystemException => 
N>                Console.WriteLine("here");
N>                throw ApplicationException()

N>            | e is ApplicationException =>
N>                Console.WriteLine("there")
N>


N>То есть, исключение брошенное внутри блока catch может быть поймано ниже в том же блоке catch.

N>В документации ничего по этому поводу не обнаружил.
N>Это бага или фича?

Хмм, напиши, что у тебя выводит, у меня все как положенно:

\> out.exe
here

Необработанное исключение: System.ApplicationException: Ошибка в приложении.
в Program.Main()

... << RSDN@Home 1.2.0 alpha rev. 655>>
Превратим окружающую нас среду в воскресенье.
Re[2]: [Nemerle] Особенности обработки исключений
От: nikov США http://www.linkedin.com/in/nikov
Дата: 26.01.07 17:08
Оценка:
Здравствуйте, ie, Вы писали:

ie>Хмм, напиши, что у тебя выводит, у меня все как положенно:

ie>

\> out.exe
ie>here

ie>Необработанное исключение: System.ApplicationException: Ошибка в приложении.
ie> в Program.Main()


here
there


Впрочем, у меня старый билд компилятора...
А что рефлектор показывает? (у меня два вложенных блока try/catch)
Re[3]: [Nemerle] Особенности обработки исключений
От: ie Россия http://ziez.blogspot.com/
Дата: 26.01.07 17:41
Оценка:
Здравствуйте, nikov, Вы писали:

N>Впрочем, у меня старый билд компилятора...


У меня тоже не последный, от 30.12.2006

N>А что рефлектор показывает? (у меня два вложенных блока try/catch)


Перевожу дословно
    try
    {
        throw new SystemException();
    }
    catch (SystemException)
    {
        Console.WriteLine("here");
        throw new ApplicationException();
    }
    catch (ApplicationException)
    {
        Console.WriteLine("there");
        return;
    }

Нахрена воткнули return — непонял
... << RSDN@Home 1.2.0 alpha rev. 655>>
Превратим окружающую нас среду в воскресенье.
Re[4]: [Nemerle] Особенности обработки исключений
От: ie Россия http://ziez.blogspot.com/
Дата: 26.01.07 17:41
Оценка:
Здравствуйте, ie, Вы писали:

N>>Впрочем, у меня старый билд компилятора...

ie>У меня тоже не последный, от 30.12.2006

Проверил последнюю ревизию — тоже все ок.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Превратим окружающую нас среду в воскресенье.
Re: [Nemerle] Особенности обработки исключений
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.01.07 18:02
Оценка:
Здравствуйте, nikov, Вы писали:

А ты какой версией компилятора пользуешся? Из SVN-а? Или 9.3.х из инсталлятора?

У меня вроде второе исключение проходит насквозь.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: [Nemerle] Особенности обработки исключений
От: nikov США http://www.linkedin.com/in/nikov
Дата: 26.01.07 19:01
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А ты какой версией компилятора пользуешся? Из SVN-а? Или 9.3.х из инсталлятора?


9.3.x из MSI.

Сейчас попробую из исходников собрать.
Re[3]: [Nemerle] Особенности обработки исключений
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.01.07 21:32
Оценка:
Здравствуйте, nikov, Вы писали:

N>9.3.x из MSI.


N>Сейчас попробую из исходников собрать.


Он сильно устарел. Надо собирать вручную. Темболее, что теперь это не сложно. Достаточно запустить Build-1-phase.cmd.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.