Her şeyden önce, bir "uygulamada nasıl kullanıldığını" sorum var zaman, başlamak için iyi bir yol olduğunu arama Git kaynak kodunu (veya herhangi yeterince büyük Git kod tabanını, gerçekten) ve paket belgeler cevaplar için.
Şimdi os.Exit
ve panic
oldukça farklı. panic
program veya parçası kurtarılamaz bir duruma ulaştığında kullanılır.
Tüm panic
bu sınırların dışında bir dilim dizine veya bir tür belirtilme başarısız gibi çalışma zamanı hataları için dolaylı olarak da dahil olmak üzere, adı, hemen çalışmakta olan işlevi durur ve yol boyunca herhangi bir ertelenmiş işlevi çalıştıran, goroutine yığınını dinlenmek başlar. Bu çözülme, gorutinin yığınının tepesine ulaşırsa, program ölür.
os.Exit
programı kurtarma olasılığı olmadan veya ertelenmiş bir temizleme bildirimi çalıştırmadan hemen iptal etmeniz gerektiğinde ve ayrıca bir hata kodu (diğer programların ne olduğunu bildirmek için kullanabileceği) döndürmeniz gerektiğinde kullanılır. Bu, testlerden biri başarısız olduktan sonra diğerinin de başarısız olacağını zaten bildiğiniz zaman testler için kullanışlıdır, bu yüzden şimdi çıksanız iyi olur. Bu, programınız yapması gereken her şeyi yaptığında ve şimdi sadece çıkması gerektiğinde, yani bir yardım mesajı yazdırdıktan sonra da kullanılabilir.
Çoğu zaman kullanmayacaksınız panic
( error
bunun yerine bir iade etmelisiniz ) ve os.Exit
testlerdeki bazı durumlar dışında ve hızlı program sonlandırması için neredeyse hiç ihtiyaç duymazsınız.
panic
, yalnızca anlaşılması kolay olduğu için hata durumunda çıkmak için kullanılır ve diğer paketleri içe aktarmayı ortadan kaldırır. Bu , iyi ya da deyimsel pratik olduğu anlamına gelmez! . Bu sadece yer tasarrufu sağlayan bir cihaz, örneğin kod. Çok özel durumlarpanic
için IRL rezervi .