Cái gì sẽ truyền vào tham số e trong câu lệnh try/catch

Chào buổi sáng ạ,

try {
    // code java here
} catch(Exception ex) {
    // code here
} 

try {
  // code javascript here
}
catch(err) {
 console.log(err);
}

Lúc câu lệnh được thực thi nếu có lỗi thì cái gì sẽ truyền đối số vào exerr vậy? Theo em là do JRE (java runtime environment) truyền vào đối với java hoặc V8 engine đối với javascript, mà không hiểu truyền như thế nào.

Chúc các bác cuối tuần vui vẻ!

1 Like

Còn tùy vào exception là gì nữa. Một số exception như NullPointerException, ArrayIndexOutOfBoundsException thì JVM (ở trên bạn hiểu là JRE thì nó hơi sai vì JRE nó không thực hiện gì cả, JVM mới là cái thực hiện chương trình) nó tự ném khi vi phạm vào (mình không biết bên trong JVM nó xử lý như thế nào).

Ngoài ra exception cũng có thể do code ném ra (trong try). Exception cũng chỉ là object thôi, chỉ cần có câu lệnh nào nó new rồi throw ra thì catch sẽ bắt lại được. Trường hợp trên cũng vậy, JVM nó tự tạo thêm exception object và ném ra thôi.

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?