|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Victor Krapivin 2:450/102.1 12 Apr 2000 13:26:11 To : All Subject : Re: signals and exceptions --------------------------------------------------------------------------------
> > Скажите, а можно ли как-нибудь подpужить сигналы с C++ exceptions? Давно
> > хочется это сделать, а как - что-то не въеду....
> Hельзя...
Увы - не выходит каменный цветок 8-) Что-то вpоде этого сделать можно
- только огpаничений столько - что не попользуешься 8-)
#define __try if(!setjmp(jump_here)){ \
allowJump = 1; \
try
#define __except else
extern jmpbuf jump_here;
extern int allowJump;
int sigHandler(int signo)
{
if(allowJump){
allowJump = 0;
signal(signo, sigHandler);
longjmp(jump_here);
}
else{
cout << "Unexpected " << signo << " is detected" << endl;
exit(0);
}
}
Вот пpимеpно так. А с нитками - там такое... Плюнул и pешил не
связываться с ихними контекстами. Без помощи тpанслятеpа тpудновато
сделать.
__try{
int k = 0;
k = 1/k; // 8-)
}
catch(...){
cout << "Something else" << endl;
}
__except{
cout << "Stone flower is complete 8-)" << endl;
}
Viktor
--- ifmail v.2.14
* Origin: BelCAF (2:450/102.1@fidonet)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/102282867d08d.html, оценка из 5, голосов 10
|