Yanıtlar:
BTW, alternatif bir seçenek şöyle olabilir:
(let ((error t))
(unwind-protect
(prog1 (call-function)
(setq error nil))
(when error (cleanup))))
Avantajı, hatayı yakalamaktan ve yeniden atmaktan kaçınmanızdır; bu, örneğin hata ayıklayıcının size başka bir kişinin hatasını tekrar atmak yerine doğru geri izini (hatanın gerçek kaynağına karşılık gelen olanı) göstereceği anlamına gelir. ).
Diğer bir fark ise, cleanup
sadece hata durumunda değil, kod bir C-g
veya çağrısıyla kesildiğinde de çağrılacaktır throw
.
quit
yoktur error
). IOW Eğer Van da onu yakalamak condition-case
sen koymak gerektiğini ancak için quit
birlikte error
. Tabii ki, bu hala `` atış '' davasını ele almayacak.
condition-case
yakalamasın kikeyboard-quit
?