Exception là gì? Cách quản lý lỗi tốt nhất trong Java
1. Exception là gì?
Exception là một sự kiện xảy ra trong quá trình thực thi một chương trình Java nó làm phá vỡ cái flowbình thường của một chương trình.
Khi một lỗi xảy ra trên một method, method đó sẽ tạo ra một object và đưa nó vào Runtime System. Object đó được gọi là Exception Object, nó chứa tất cả các thông tin về lỗi và trạng thái của chương trình khi xảy ra lỗi. Sau đó Runtime System sẽ xử lý sẽ tìm cách xử lý lỗi này.
Quá trình xử lý Exception được gọi là catch Exception, nếu Runtime System không xử lý được ngoại lệ thì chương trình sẽ kết thúc.
2. Mô hình Exception trong Java
Mô hình exception trong Java
3. Các loại Exception trong Java
Trong Java có 2 loại Exception là Checked exceptions và UnChecked exceptions.
Checked exceptions:
Là loại exception xảy ra trong lúc compile time, nó cũng có thể được gọi là compile time exceptions. Loại exception này không thể bỏ qua được trong quá trình compile, bắt buộc ta phải handle nó.
Ví dụ: IOException, FileNotFoundException....
UnChecked exceptions:
Là loại exception xảy ra tại thời điểm thực thi chương trình, nó cũng có thể gọi là runtime exceptions đó là programming bugs, lỗi logic của chương trình... Loại exception này được bỏ qua trong quá trình compile, không bắt buộc ta phai handle nó.
Ví dụ: NumberFormatException, ArrayIndexOutOfBoundsException...
Errors:
Là những vấn đề nghiêm trọng liên quan đến môi trường thực thi của ứng dụng, hệ thống. Nó thường làm chết chương trình.
Ví dụ: OutOfMemoryError, LinkageError, and StackOverflowError.
4. Cách bắt lỗi trong Java
Để bắt lỗi trong Java ta sử dụng từ khóa try - catch và finally blocks. Ta cũng có thể dùng try-with-resources có từ Java 7. try-with-resources được dùng riêng biệt trong trường hợp xử dụng Closeable
resources như là streams.
Có 2 cách xử lý lỗi trong Java là xử lý lỗi trực tiếp bằng try-catch và xử lý lỗi giáng tiếp bằng throws
a. try-catch:
Xử lý lỗi tại chổ tại khối lệnh có thể phát sinh ra lỗi và chương trình có thể chạy tiếp những lệnh tiếp theo. Hoặc là bắt lỗi để chuyển thành một lỗi khác và đưa ra ngoài xử lý.
Cú pháp:
Single catch block
Multiple catch blocks
b. throws:
Là để ném lỗi ra ngoài để xử lý lỗi.. không chạy tiếp những lệnh tiếp theo trong method sau khi đã ném lỗi.
Ví dụ:
Kết quả:
Error: Get name has error..
Finish........
Ta thấy sau khi ném lỗi StringIndexOutOfBoundsException ra ngoài thì "continuing........" không được in ra.. tức là những lệnh tiếp theo không được chạy. Và lỗi này đã được đưa ra ngoài đễ xử lý.
Note:
-
Throw: để quăng ra Exception ở bất kỳ dòng nào trong phương thức (sau đó dùng try-catch để bắt hoặc throws cho thằng khác sử lý)
-
Throws: Chỉ có phương thức mới được sử dụng. Khi một phương thức có throw bên trong mà không bắt lại (try – catch) thì phải ném đi (throws) cho thằng khác xử lý.
Bạn đang muốn tìm kiếm 1 công việc với mức thu nhập cao.
✅ Hoặc là bạn đang muốn chuyển đổi công việc mà chưa biết theo học ngành nghề gì cho tốt.
✅ Giới thiệu với bạn Chương trình đào tạo nhân sự dài hạn trong 12 tháng với những điều đặc biệt mà chỉ có tại IMIC và đây cũng chính là sự lựa chọn phù hợp nhất dành cho bạn:
👉 Thứ nhất: Học viên được đào tạo bài bản kỹ năng, kiến thức chuyên môn lý thuyết, thực hành, thực chiến nhiều dự án và chia sẻ những kinh nghiệm thực tế từ Chuyên gia có nhiều năm kinh nghiệm dự án cũng như tâm huyết truyền nghề.
👉 Thứ hai: Được ký hợp đồng cam kết chất lượng đào tạo cũng như mức lương sau tốt nghiệp và đi làm tại các đối tác tuyển dụng của IMIC. Trả lại học phí nếu không đúng những gì đã ký kết.
👉 Thứ ba: Cam kết hỗ trợ giới thiệu công việc sang đối tác tuyển dụng trong vòng 10 năm liên tục.
👉 Thứ tư: Được hỗ trợ tài chính với mức lãi suất 0 đồng qua ngân hàng VIB Bank.
👉 Có 4 Chương trình đào tạo nhân sự dài hạn dành cho bạn lựa chọn theo học. Gồm có:
1) Data Scientist full-stack
2) Embedded System & IoT development full-stack
3) Game development full-stack
4) Web development full-stack
✅ Cảm ơn bạn đã dành thời gian lắng nghe những chia sẻ của mình. Và tuyệt vời hơn nữa nếu IMIC được góp phần vào sự thành công của bạn.
✅ Hãy liên hệ ngay với Phòng tư vấn tuyển sinh để được hỗ trợ về thủ tục nhập học.
✅ Chúc bạn luôn có nhiều sức khỏe và thành công!