Кстати, вот наколенный этюдик, набросанный для объяснения другому человеку обработку исключений на плоском цэ (может кому нть поможет)
FPE_INTDIV0 and similar constants are not defined for Borland Turbo C 1.0.
in Turbo C 1.0 we must check floating points status with int _status87() and clear it with void _fpreset() or int _clear87().
probably _status87() returns constants like EM_ZERODIVIDE or SW_OVERFLOW defined in float.h of this c-version. did not checked though. hope you got the principle.
finally, you can ignore arguments in the definition of exception handler and it will do for any c and c++ version. but you can loose event details.
having Win32 specific code removed, this program works fine under DOS/TurboC1 (and still Win32/BorlandC++5).
jmp_buf jmp_bufWatchoutIntDiv0; /*storage of the program state, including execution point.*/
/*you can dump it to external file for later analysis.*/
int main(int argc, char* argv[])
{
int nA, nB, nC;
float sA, sB, sC;
/*installing handlers first time.*/
signal(SIGFPE, CatchSIGFPE);
nA = 1; nB = 1; nC = 0;
sA = 1.0; sB = 1.0; sC = 0.0;
/*we don't raise the exception ourselves, but the division actually does it.*/
if ( !setjmp(jmp_bufWatchoutIntDiv0) )
nA = nB / nC; /*raises exception SIGFPE.*/
else
nA = 0, printf("\nNah, checked that, but it scared me! I set result of division to 0.");
/*checking wether exception catcher is still in our hands.*/
if ( !setjmp(jmp_bufWatchoutIntDiv0) )
sA = sB / sC; /*raises exception SIGFPE.*/
else
sA = 0, printf("\nAgain, I was close to crash! I set result to zero one more time.");
printf("\nWOW!.. That was fun! :-)");
printf("\nPress any key...");
getch();
__finally это блок, который выполнится обязательно с исключительными ситуациями или без них.
Это не catch(...).
Блок предназначен для освобождения ресурсов, которые мы захватили, но из-за сбоя не сможем использовать (залочили файл, выделили оперативку, выставили семафор/мьютекс и т. д.)
Не проецируйте на меня свою фрустрацию, пожалуйста.
То, что вы брикнули тело — тема вежливого обсуждения на 4pda.ru/forum и аналогичных ресурсах, а не тема для хабра.
И я не телепат вычислять, что бы брикнули аппарат и предвидеть ваши обиды.
1)Карточка обозревается любым файловым менеджером, начиная с AndroZip или каким нть ES File Explorer. Она не является системно скрытой от юзверя.
2)MyPhone Explorer позволяет гонять файлы туда-сюда посредством BT, WiFi, USB. Пи этом предоставляет наиболее удобный интерфейс к такому движняку из виденных мною.
3)Перепрошивка осуществляется при ребуте телефона в режим recovery или bootloader, и никакой другой юзерский приклад не в состоянии это делать иначе.
4)Типичный сценарий выглядит как размещение файла рома на флешке и последующее его использование их режима bootloader.
Лично меня раздражает бардак на карте. Ранее использовать Win6.1/6.5 телефон (или только его карту) в качестве флешки было не стыдно.
Сейчас неловко показывать этот дроидовский бардак людям. Люди на винде получают мигрень от толпы юникс-«скрытых» каталогов типа «точка-имя» (а они сортируются вверх списка) и от пейсателей, валящих свой мусор в корень.
Но основная претензия (не совсем к SD), побудившая меня рутовать тело, это взаимоотношения сигналов и музыки: либо ваши сигналы играются в плеере промеж музыкальной подборки, либо ваши сигналы скрыты посредством .nomedia от плеера так же как и от системы выбора сигнала для будильника/смс.
В виду повального отупления плееров — а именно тотальное сканирование пространства на предмет наличия всех и любых медиафайлов (а плееров, которые можно ограничить одним каталогом маловато) — с одной стороны и существенной разницы в звуке фабричного плеера с системами Dolby/SRS с другой стороны, просто вынуждает искать методы вынесения сигнальных звуков за пределы досягамости загребущих лап всяких разномастных Media Library. То есть в системные области.
И это при том, что HTC значительно доработала и улучшила эргономику и логику дроида через Sense.
А плюшки вроде SetCPU, Toggle2G удваивающие время жизни тела на заряде — это нежданные приятные плюшки и бонусы рутования, как и удаление рекламы и экономия трафика через AdFree и Droidwall.
В целом ещё видна сырость дроида как перспективной и отличной доктрины. Невооружённым взглядом.
Эти размышления действительны для всех типов ошибок?
Я бы, наверное, назвал такие:
1)критические ошибки ресурсов/потов окружения {SIG_ABORT} или сбой чётности памяти, требуют остановить программу
2)некритические ошибки ресурсов/потоков, реакция варьируется между игнорированием, ожиданием, ветвлением/диалогом и пр.
3)ошибки аргументов к нашей функции, реакция зависит от контекста
4)ошибки аргументов к чужой функции {tan(PI/2)} реакция зависит от контекста
На тесте IQ среди сотрудников МВД, состоявшем в проталкивании фигурных пробок через фигурные отверстия, выяснилось, что 50%обладают зачатками интеллекта, а 50% обладают достаточной силой.
1. Циферблат SPB Alarm Clock spb.com/products/time/screenshots.html
К сожалению, он заточен на стилус, руками выставить будильник трудновато.
Но можно поэкспериментировать с чувствительностью к пальцу
Если покажется, что скроллить 12:05-12:10-12:15 слишком долго, можете слегка сдвинуть дату, и часовое колёсико быстро сдвинется приблизительно в указанную часть даты.
4. Лично мне понятно и удобно было бы оставить колёсико часа слитным, а минуты разделить на десятки и единицы. Тогда не пришлось бы крутить 60-ричный цикл так долго, а последнюю позицию оставлять нулевой.
market.android.com/details?id=ls.android.nopockaj
Это пригодится для затравки до отыскивания оригинальной железки? ;-)
FPE_INTDIV0 and similar constants are not defined for Borland Turbo C 1.0.
in Turbo C 1.0 we must check floating points status with int _status87() and clear it with void _fpreset() or int _clear87().
probably _status87() returns constants like EM_ZERODIVIDE or SW_OVERFLOW defined in float.h of this c-version. did not checked though. hope you got the principle.
finally, you can ignore arguments in the definition of exception handler and it will do for any c and c++ version. but you can loose event details.
having Win32 specific code removed, this program works fine under DOS/TurboC1 (and still Win32/BorlandC++5).
#include "stdio.h"
#include "conio.h"
#include "signal.h"
#include "setjmp.h"
void CatchSIGFPE(void);
jmp_buf jmp_bufWatchoutIntDiv0; /*storage of the program state, including execution point.*/
/*you can dump it to external file for later analysis.*/
int main(int argc, char* argv[])
{
int nA, nB, nC;
float sA, sB, sC;
/*installing handlers first time.*/
signal(SIGFPE, CatchSIGFPE);
nA = 1; nB = 1; nC = 0;
sA = 1.0; sB = 1.0; sC = 0.0;
/*we don't raise the exception ourselves, but the division actually does it.*/
if ( !setjmp(jmp_bufWatchoutIntDiv0) )
nA = nB / nC; /*raises exception SIGFPE.*/
else
nA = 0, printf("\nNah, checked that, but it scared me! I set result of division to 0.");
/*checking wether exception catcher is still in our hands.*/
if ( !setjmp(jmp_bufWatchoutIntDiv0) )
sA = sB / sC; /*raises exception SIGFPE.*/
else
sA = 0, printf("\nAgain, I was close to crash! I set result to zero one more time.");
printf("\nWOW!.. That was fun! :-)");
printf("\nPress any key...");
getch();
return 0;
};
void CatchSIGFPE(void)
{
signal(SIGFPE, CatchSIGFPE);
fprintf(stderr, "\n>SIGFPE caught!");
longjmp(jmp_bufWatchoutIntDiv0, 1);
};
Это не catch(...).
Блок предназначен для освобождения ресурсов, которые мы захватили, но из-за сбоя не сможем использовать (залочили файл, выделили оперативку, выставили семафор/мьютекс и т. д.)
То, что вы брикнули тело — тема вежливого обсуждения на 4pda.ru/forum и аналогичных ресурсах, а не тема для хабра.
И я не телепат вычислять, что бы брикнули аппарат и предвидеть ваши обиды.
1)Карточка обозревается любым файловым менеджером, начиная с AndroZip или каким нть ES File Explorer. Она не является системно скрытой от юзверя.
2)MyPhone Explorer позволяет гонять файлы туда-сюда посредством BT, WiFi, USB. Пи этом предоставляет наиболее удобный интерфейс к такому движняку из виденных мною.
3)Перепрошивка осуществляется при ребуте телефона в режим recovery или bootloader, и никакой другой юзерский приклад не в состоянии это делать иначе.
4)Типичный сценарий выглядит как размещение файла рома на флешке и последующее его использование их режима bootloader.
Где я ошибаюсь и что у вас не получается?
То, что «погода» переключается через часа два-три после выхода из самолёта не очень критично.
А то, что карты позиционируются неверно — это, предпогалаю, проблема долгой подхватки новых эфемерид.
Собсна для этого есть хоть бы и GPS Status с кнопкой Reset GPS Data — позволяет насильно удалить эфемериды с неистёкшим сроком устаревания.
Я просто охерел, когда увидел это на ВСЕХ опробованных браузерах — трёх Dolphin, двух Opera, Ninesky, Firefox.
Я решил попробовать дефолтный браузер — строка адреса на закрывается контекстным меню. Контекстное меню закрывает центральную строку поиска сайта google.com! Нокаут!
Вы лучше скажите, что тактильно труднее попадать пальцем в клавиши — они не имеют ощутимых границ. Честнее будет.
Прокрутка плавнее.
Лично меня раздражает бардак на карте. Ранее использовать Win6.1/6.5 телефон (или только его карту) в качестве флешки было не стыдно.
Сейчас неловко показывать этот дроидовский бардак людям. Люди на винде получают мигрень от толпы юникс-«скрытых» каталогов типа «точка-имя» (а они сортируются вверх списка) и от пейсателей, валящих свой мусор в корень.
Но основная претензия (не совсем к SD), побудившая меня рутовать тело, это взаимоотношения сигналов и музыки: либо ваши сигналы играются в плеере промеж музыкальной подборки, либо ваши сигналы скрыты посредством .nomedia от плеера так же как и от системы выбора сигнала для будильника/смс.
В виду повального отупления плееров — а именно тотальное сканирование пространства на предмет наличия всех и любых медиафайлов (а плееров, которые можно ограничить одним каталогом маловато) — с одной стороны и существенной разницы в звуке фабричного плеера с системами Dolby/SRS с другой стороны, просто вынуждает искать методы вынесения сигнальных звуков за пределы досягамости загребущих лап всяких разномастных Media Library. То есть в системные области.
И это при том, что HTC значительно доработала и улучшила эргономику и логику дроида через Sense.
А плюшки вроде SetCPU, Toggle2G удваивающие время жизни тела на заряде — это нежданные приятные плюшки и бонусы рутования, как и удаление рекламы и экономия трафика через AdFree и Droidwall.
В целом ещё видна сырость дроида как перспективной и отличной доктрины. Невооружённым взглядом.
(пародия на www.youtube.com/watch?v=VBMO5eSPOd4)
Я бы, наверное, назвал такие:
1)критические ошибки ресурсов/потов окружения {SIG_ABORT} или сбой чётности памяти, требуют остановить программу
2)некритические ошибки ресурсов/потоков, реакция варьируется между игнорированием, ожиданием, ветвлением/диалогом и пр.
3)ошибки аргументов к нашей функции, реакция зависит от контекста
4)ошибки аргументов к чужой функции {tan(PI/2)} реакция зависит от контекста
Выделение сюжета на данном поле оставьте юзателю.
1. Циферблат SPB Alarm Clock spb.com/products/time/screenshots.html
К сожалению, он заточен на стилус, руками выставить будильник трудновато.
Но можно поэкспериментировать с чувствительностью к пальцу
2. Неплохое решение разработал beOrganised droider.ru/post/beorganized-kalendar-i-zadachi-neploho-uzhivayut-21-06-2011/
Если покажется, что скроллить 12:05-12:10-12:15 слишком долго, можете слегка сдвинуть дату, и часовое колёсико быстро сдвинется приблизительно в указанную часть даты.
3. Не очень элегантное, но весьма лобовое решение даёт Business Calendar
market.android.com/details?id=netgenius.bizcal
4. Лично мне понятно и удобно было бы оставить колёсико часа слитным, а минуты разделить на десятки и единицы. Тогда не пришлось бы крутить 60-ричный цикл так долго, а последнюю позицию оставлять нулевой.
Так лучше?