IT в России и мире в реалиях мирового кризиса
1,401,217 8,469
 

  Jack Doe ( Слушатель )
03 мар 2016 00:37:30

try vs goto

новая дискуссия Дискуссия  215

Ключевая особенность try/catch/finally - это сохранение контекста перед вызовом на стек, и очистка его в finally или восстановление в catch. Под  контекстом понимается содержимое всех регистров, включая счётчик команд (точно так же, как делается при переключении процессов в ОС). Без этого нельзя сделать откат при ошибке. Соответственно, try - дорогая операция.

Аналог try/catch в С - setjmp/longjmp.

Да, пользоваться try вместо goto можно, но дорого. В языках типа java/c# желательно известные типы ошибок обрабатывать обычной проверкой, вместо try. Ну и соответственно ненужные try - хороший задел по оптимизации)
  • +0.02 / 2
  • АУ
ОТВЕТЫ (2)
 
 
  Alexxey ( Слушатель )
03 мар 2016 00:40:53

Именно. А наоборот и вовсе невозможно.
  • +0.00 / 0
  • АУ
 
 
  adolfus ( Слушатель )
03 мар 2016 04:50:26

траи -- кривая обертка для функций обратного вызова.
  • +0.00 / 0
  • АУ