-
Data: 2012-03-29 09:01:01
Temat: Re: wyjatki
Od: " " <f...@g...SKASUJ-TO.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]w wiki jest napisane:
"Two schemes are most common. The first, dynamic registration, generates code
that continually updates structures about the program state in terms of
exception handling.[8] Typically, this adds a new element to the stack frame
layout that knows what handlers are available for the function or method
associated with that frame; if an exception is thrown, a pointer in the
layout directs the runtime to the appropriate handler code. This approach is
compact in terms of space, but adds execution overhead on frame entry and
exit. It was commonly used in many Ada implementations, for example, where
complex generation and runtime support was already needed for many other
language features. Dynamic registration, being fairly straightforward to
define, is amenable to proof of correctness.[9]
The second scheme, and the one implemented in many production-quality C++
compilers, is a table-driven approach. This creates static tables at compile
and link time that relate ranges of the program counter to the program state
with respect to exception handling.[10] Then, if an exception is thrown, the
runtime system looks up the current instruction location in the tables and
determines what handlers are in play and what needs to be done. This approach
minimizes executive overhead for the case where an exception is not thrown,
albeit at the cost of some space, although said space can be allocated into
read-only, special-purpose data sections that are not loaded or relocated
until and unless an exception is thrown.[11] This second approach is also
superior in terms of achieving thread safety."
czyli gdyby to drugie u mnie dzialalo to bym mial spowolnienia w
loader time i nawet nie wiem,
jak wspomnialem mz wykorzystanie wyjatkow by wylaczyc na stale jakas
funkcje/galaz z ktorej polecial jakis niezidentyfikowany blad moze
byc moze miec ew pewien sens - (poki co jedyne ew sensowne dzialanie
jakiemi sie z tym kojarzy) - ale nie pisze poki co programow
ktore by tego wymagaly a wolalbym kiedys przemyslec obsluge bledow w
szerszy i ogolnijszy sposob
co do longjmp to ta struktura pod b55 jest np taka
typedef struct __jmp_buf {
unsigned j_ebp;
unsigned j_ebx;
unsigned j_edi;
unsigned j_esi;
unsigned j_esp;
unsigned j_ret;
unsigned j_excep;
unsigned j_context;
} jmp_buf[1];
nie wiem po co niektore pola (np edi esi ebx, czy to potrzeba zachowania
czesci kontekstu funkcji z catch? ani co to jest j_ret) bo srednio sie
w tym orientuje - ogolnie wydaje sie to byc jednak kwestia obslugi
mechanizmu powrotu w tyl po drzewku a nie samych kwestii z wyjatkami
(bo same powroty mozna rozpatrywac w oderwaniu od wyjatkow)
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 29.03.12 10:39
- 30.03.12 15:24 Adam Wysocki
- 30.03.12 15:49 M.M.
- 30.03.12 18:56 bartek szurgot
- 30.03.12 20:54
- 28.03.12 09:00 Roman W
- 28.03.12 12:18 Krzysiek Kowaliczek
- 29.03.12 19:23 Tomasz D
Najnowsze wątki z tej grupy
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-13 Kraków => QA Inżynier <=
- 2024-11-13 Żerniki => Dyspozytor Międzynarodowy <=
- 2024-11-13 Warszawa => Analityk Biznesowo-Systemowy <=
- 2024-11-13 Lublin => Delphi Programmer <=