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, cleanupsadece hata durumunda değil, kod bir C-gveya çağrısıyla kesildiğinde de çağrılacaktır throw.
quityoktur error). IOW Eğer Van da onu yakalamak condition-casesen koymak gerektiğini ancak için quitbirlikte error. Tabii ki, bu hala `` atış '' davasını ele almayacak.
condition-caseyakalamasın kikeyboard-quit?