Bu, benim için en iyi uygulama sorusu.PowerShell İşlevlerle Çalışmada Hata Giderme
Komut dosyalarında kullanılacak işlevleri tasarlarken, işlevin içinde oluşabilecek hataları işlemenin en iyi yolu nedir? Bu atacağım
Try
{
$ValueIWantFromFunction = Test-Function
}
Catch
{
<# Do something here #>
}
Test-Function
bir sonlandırma hatası vurursa:
Function Test-Function
{
Try
{
<# Something in here that would generate an error #>
}
Catch
{
Throw
}
Return $someReturnResultIWantInMyScript
}
Benim komut dosyası bu işlevini çağırır: Örneğin
, biz X ve Y yok temel işlevi olduğunu varsayalım arayan kişiye. Komut dosyasındaki işlev çağrımın etrafındaki Try/Catch
bu hatayı alacak ve kendi catch'una sahip olacaktır. Sonra ne yapacağına karar verebilirim.
İşlev içinde bir hata atmamış olsaydım, komut dosyası sonlandırıcı hatayı görmez ve $ValueIWantFromFunction
benim $Null
veya yararlı olmayan bir şey içerebilir.
Bu, komut dosyalarındaki işlevler ve işlev çağrıları ile çalışırken iyi bir hata mıdır? Daha iyi bir yolu var mı?
Ben kullanım durumuna bağlıdır söyleyeceğim. Çoğunlukla bu seçenekler size seçenek sunmak için var. En iyi uygulama, diğer koşullu mantıkla önlenebilirse bu hataları tetiklemekten kaçınmak olacaktır. – Matt
Deneme hataları, try/catch'unuz engellenmediği sürece, try/catch'unuz ne olursa olsun arayanına gider. – TheIncorrigible1
İşlev de bir değer döndürüyorsa (nasıl başarılı olur?), Hatayı nasıl ele alırım? – PnP