На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (245) « Первая ... 51 52 [53] 54 55 ...  244 245  ( Перейти к последнему сообщению )  
> Есть ли будущее у DELPHI?
    Цитата Повстанець @
    В исключении передаётся вполне достаточно информации для чего угодно.


    И ты думаешь что все эти параметры класса языкового исключения туда попадут и ты сможешь их обработать? Ну, код я тебе написал - дерзай, покажи мне свое приложение, которое выведет на экран сообщение об ошибке 'Invalid index: xxx' ;)

    Цитата Повстанець @
    Мало того, что его никто удалять не будет, так это исключение ещё никто и не получит.


    Ну, во-первых именно исключение ты получишь, но вот о его параметрах - ну ничегошеньки не узнаешь, потому что винапишный протокол ничего для этого не предусматривает

    Цитата Повстанець @
    Языковые исключения, к HRESULT вообще никакого отношения не имеют. Во всяком случае не большее, чем те же исключения к GetLastError из WinApi.


    Несколько больше. Протокол COM устанавливает для языковых исключений правила игры - что и каким образом с ними должно происходить ;)

    Добавлено
    Цитата D_KEY @
    Как ты собрался ловить языковые исключения одного языка в другом?


    эээ, safecall? :D Через границы модуля исключение не пройдет, пройдет HResult, который уже потом будет преобразован в исключение

    Добавлено
    Цитата D_KEY @
    Так что только SEH...


    Это неправильный ответ, потому что работать в этом случае будет все некорректно - никто твое языковое исключение на принимающей стороне не обработает как положено
      Вот ведь парадокс - TDateTime позволяет хранить дату чуть ли не тепловой смерти вселенной, а будущего - нет :-?
        Цитата Мяут-Настоящий @
        а будущего - нет


        Э?

        Добавлено
        Цитата Повстанець @
        Чувак, ну ты прикалываешься, или что? Твой объект класса EListIndexError не имеет никакого отношения ни к СОМ, ни к WinApi. Ровно как и твой оператор raise. Мало того, что его никто удалять не будет, так это исключение ещё никто и не получит.


        А вообще я примерно это и имел в виду, когда говорил о том, что винапишный подход использовать для межмодульного взаимодействия - ненадежно. Исключения - это такая штука, ты не никогда не уверен что тебе в следующий момент оно не вывалится, тебе вовсе необязательно писать raise самому - это может произойти помимо твоей воли. Но фишка в том, что обработана то эта ситуация корректно не будет - ну что чужой язык программирования знает про твои исключения? Вывод - такой протокол межмодульного и межязыкового взаимодействия - в печь! :D
          Цитата --Ins-- @
          Протокол COM устанавливает для языковых исключений правила игры - что и каким образом с ними должно происходить ;)

          Ссылку?

          Цитата
          пройдет HResult, который уже потом будет преобразован в исключение

          Это будет зависеть от принимающего языка.
            Цитата --Ins-- @
            В инструменте, предназначенном для программирования под Win32 - никуда

            Только вот этот инструмент в очередной раз метит в кроссплатформенность :whistle:
              Цитата D_KEY @
              Ссылку?


              Ссылку на что? На то, что для com/ole способом оповещения об ошибках - должен быть тип HResult, а не винапишные "что хочу" (хочу - исключение, хочу - код ошибки, хочу - BOOL-значение)?

              Добавлено
              Цитата [S]mike @
              Только вот этот инструмент в очередной раз метит в кроссплатформенность


              Ну и пожелаем ему в этом успехов, как тут TDateTime мешает? В Delphi.NET тоже наверняка есть TDateTime, но разве там он псевдоним double? В Delphi for win32 же на подкапотном уровне удобно было реализовать его в виде double
                Цитата --Ins-- @
                И ты думаешь что все эти параметры класса языкового исключения туда попадут и ты сможешь их обработать? Ну, код я тебе написал - дерзай, покажи мне свое приложение, которое выведет на экран сообщение об ошибке 'Invalid index: xxx' ;)
                Напомни ка мне, с каких пор мы начали говорить о о языковых исключениях? Мы говорили о WinApi и СОМ!
                Цитата --Ins-- @
                Ну, во-первых именно исключение ты получишь, но вот о его параметрах - ну ничегошеньки не узнаешь, потому что винапишный протокол ничего для этого не предусматривает
                Я тебе линк дал на msdn. Ты вообще его смотрел?
                Цитата --Ins-- @
                Несколько больше. Протокол COM устанавливает для языковых исключений правила игры - что и каким образом с ними должно происходить ;)
                HRESULT возвращает код ошибки. Что это обозначает? Что HRESULT возвращает код ошибки. Языковые исключения -- то уже половые трудности того, кто этот HRESULT использует.
                Цитата --Ins-- @
                Вывод - такой протокол межмодульного и межязыкового взаимодействия - в печь! :D
                :wall: Для этого и придумали SEH.
                  Эхх, а Мяут так ничего и не пояснил - ляпнул очередную херь с умным видом, и сбежал :wall:
                    --Ins--, в Дельфях с исключениями всё просто. Они там просто являются ООП-расширением SEH, а объектами исключений являются подкапотные ссылки на хиповые объекты. В Плюсах исключения - отдельная песня. У них иной принцип организации, там объектом исключения может быть не только ссылка или указатель на, но и сам произвольный класс произвольно сложной структуры, даже уровня VCL-ного визуального компонента, созданного при этом на стеке (да-да, который этим исключением счас начнёт разматываться). И тем не менее плюсовые компиляторы (большей частью, те, что так не поступает, заставляют программеров либо отказываться от исключений, либо отгребать на отладке) используют SEH, иначе C++EH исключения не будут ловиться __finally{} и наоборот - SEH исключения не будут вызывать по дороге деструктры объектов. Для Плюсов SEH суть лишь транспорт. Так что протащить через COM посредством SEH объект исключения не проблема, а если ещё и .tlb озаботиться, то и с кроссязыковость проблем не будет.
                    И да, у SEH исключений не нет параметров, у них есть параметры.
                    Цитата
                    void WINAPI RaiseException(
                    __in DWORD dwExceptionCode,
                    __in DWORD dwExceptionFlags,
                    __in DWORD nNumberOfArguments,
                    __in const ULONG_PTR* lpArguments
                    );

                    /* ... */

                    nNumberOfArguments
                       The number of arguments in the lpArguments array. This value must not exceed EXCEPTION_MAXIMUM_PARAMETERS. This parameter is ignored if lpArguments is NULL.
                      Цитата Повстанець @
                      Напомни ка мне, с каких пор мы начали говорить о о языковых исключениях? Мы говорили о WinApi и СОМ!


                      Мы (по крайней мере я) начал о них говорить с самого начала, когда заявил что com-овский протокол обеспечивает надежное межъязыковое взаимодействие при соблюдении правил этого протокола, а сами по себе эти правила - это и есть правила, цель которых обеспечить межязыковое взаимодействие с учетом того, что в языках бывают объекты, исключения и т.д.
                        Цитата
                        А у дельфиста
                        Взрезано брюхо винтом
                        Выстрела в спину
                        Не ожидает никто

                        :D
                          Астарот - ты флудер :P
                            Цитата Qraizer @
                            Это что, дольше 21-го года??

                            Почему именно эта цифра? Но вообще около 20-ти лет.
                              Цитата --Ins-- @
                              Астарот - ты флудер :P

                              Нифига! Я - поэт :D
                                Цитата --Ins-- @
                                Вопрос в другом, каким образом TDateTime не удовлетворяет этим требованиям, что ты так проклинал разработчика?

                                вопрос в наглом перетягивании одеяла :D как в том анекдоте: я посередине - я нейтралитет. так вот в середине лежим системтайм, справа тдататайм, слева кудататайм. так кто нейтралитет? :D
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (245) « Первая ... 51 52 [53] 54 55 ...  244 245


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0775 ]   [ 15 queries used ]   [ Generated: 21.12.25, 21:50 GMT ]