Bu eğiticide, örnekler yardımıyla JavaScript atma ifadeleri hakkında bilgi edineceksiniz.
Önceki öğreticide, JavaScript try… catch deyimini kullanarak istisnaları ele almayı öğrendiniz. Try ve catch deyimleri, istisnaları JavaScript tarafından sağlanan standart bir şekilde ele alır. Ancak, throw
kullanıcı tanımlı istisnaları geçmek için ifadeyi kullanabilirsiniz .
JavaScript'te throw
ifade, kullanıcı tanımlı istisnaları işler. Örneğin, belirli bir sayı 0'a bölünürse ve Infinity
bir istisna olarak düşünmeniz gerekirse , throw
bu istisnayı işlemek için ifadeyi kullanabilirsiniz .
JavaScript atma ifadesi
Throw ifadesinin sözdizimi şöyledir:
throw expression;
Burada expression
istisnanın değerini belirtir.
Örneğin,
const number = 5; throw number/0; // generate an exception when divided by 0
Not : İfade dize, mantıksal değer, sayı veya nesne değeri olabilir.
JavaScript ile deneyin… catch
Sözdizimi try… catch… throw
şöyledir:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Not : throw ifadesi yürütüldüğünde, bloktan çıkar ve bloğa gider catch
. Ve throw
ifadenin altındaki kod çalıştırılmaz.
Örnek 1: dene… yakala… fırlat Örnek
const number = 40; try ( if(number> 50) ( console.log('Success'); ) else ( // user-defined throw statement throw new Error('The number is low'); ) // if throw executes, the below code does not execute console.log('hello'); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Çıktı
Bir hata yakalandı Hata mesajı: Hata: Sayı düşük
Yukarıdaki programda bir koşul kontrol edilir. Sayı 51'den küçükse , bir hata atılır. Ve bu hata, throw
ifade kullanılarak atılır .
throw
Deyim dizelerini belirten The number is low
bir ifadesi olarak.
Not : Ayrıca standart hatalar için diğer yerleşik hata kurucular kullanabilirsiniz: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, ve RangeError
.
Örneğin,
throw new ReferenceError('this is reference error');
Bir İstisnayı Yeniden Atın
Bir istisnayı yeniden atmak throw
için catch
bloğun içindeki ifadeyi de kullanabilirsiniz . Örneğin,
const number = 5; try ( // user-defined throw statement throw new Error('This is the throw'); ) catch(error) ( console.log('An error caught'); if( number + 8> 10) ( // statements to handle exceptions console.log('Error message: ' + error); console.log('Error resolved'); ) else ( // cannot handle the exception // rethrow the exception throw new Error('The value is low'); ) )
Çıktı
Bir hata yakalandı Hata mesajı: Hata: Bu, fırlatma hatasıdır Hata çözüldü
Yukarıdaki programda, throw
ifade try
blok içinde bir istisnayı yakalamak için kullanılır . Ve throw
ifade, catch
blok catch
istisnayı işleyemezse çalıştırılan blokta yeniden atılır .
Burada catch
blok istisnayı ele alır ve hata oluşmaz. Bu nedenle, throw
ifade yeniden yazılmaz.
Hata catch bloğu tarafından işlenmediyse, throw ifadesi Yakalanmamış Hata: Değer düşük hata mesajı ile yeniden atılır