Trong hướng dẫn này, bạn sẽ tìm hiểu về các câu lệnh ném JavaScript với sự trợ giúp của các ví dụ.
Trong hướng dẫn trước, bạn đã học cách xử lý các ngoại lệ bằng cách sử dụng câu lệnh try… catch trong JavaScript. Câu lệnh try and catch xử lý các ngoại lệ theo cách tiêu chuẩn được cung cấp bởi JavaScript. Tuy nhiên, bạn có thể sử dụng throw
câu lệnh để chuyển các ngoại lệ do người dùng xác định.
Trong JavaScript, throw
câu lệnh xử lý các ngoại lệ do người dùng xác định. Ví dụ: nếu một số nhất định chia cho 0 và nếu bạn cần xem xét Infinity
như một ngoại lệ, bạn có thể sử dụng throw
câu lệnh để xử lý ngoại lệ đó.
Câu lệnh ném JavaScript
Cú pháp của câu lệnh ném là:
throw expression;
Ở đây, expression
chỉ định giá trị của ngoại lệ.
Ví dụ,
const number = 5; throw number/0; // generate an exception when divided by 0
Lưu ý : Biểu thức có thể là chuỗi, boolean, số hoặc giá trị đối tượng.
Ném JavaScript với thử… bắt
Cú pháp của try… catch… throw
là:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Lưu ý : Khi câu lệnh ném được thực thi, nó sẽ thoát ra khỏi khối và đi đến catch
khối. Và đoạn mã bên dưới throw
câu lệnh không được thực thi.
Ví dụ 1: thử… bắt… ném Ví dụ
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); )
Đầu ra
Đã xảy ra lỗi Thông báo lỗi: Lỗi: Số lượng thấp
Trong chương trình trên, một điều kiện được chọn. Nếu số lượng nhỏ hơn 51 , một lỗi sẽ xảy ra. Và lỗi đó được ném ra bằng cách sử dụng throw
câu lệnh.
Câu throw
lệnh chỉ định chuỗi The number is low
dưới dạng một biểu thức.
Lưu ý : Bạn cũng có thể sử dụng nhà thầu xây dựng-in lỗi khác cho sai số chuẩn: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, và RangeError
.
Ví dụ,
throw new ReferenceError('this is reference error');
Rethrow một Exception
Bạn cũng có thể sử dụng throw
câu lệnh bên trong catch
khối để ném lại một ngoại lệ. Ví dụ,
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'); ) )
Đầu ra
Lỗi bị bắt Thông báo lỗi: Lỗi: Đây là lỗi đã được giải quyết
Trong chương trình trên, throw
câu lệnh được sử dụng trong try
khối để bắt một ngoại lệ. Và throw
câu lệnh được phát triển lại trong catch
khối được thực thi nếu catch
khối không thể xử lý ngoại lệ.
Ở đây, catch
khối xử lý ngoại lệ và không xảy ra lỗi. Do đó, throw
tuyên bố không được phát triển lại.
Nếu lỗi không được xử lý bởi khối catch, câu lệnh ném sẽ được phát triển lại với thông báo lỗi Uncaught Error: Giá trị thấp