Xử lý ngoại lệ
I. Cơ bản của Java:
D. Xử lý ngoại lệ:
Trong Java, xử lý ngoại lệ (exception handling) là quá trình điều khiển và xử lý các tình huống ngoại lệ xảy ra trong quá trình thực thi chương trình. Các ngoại lệ có thể xảy ra do nhiều nguyên nhân, bao gồm lỗi cú pháp, lỗi thời gian chạy (runtime errors), hoặc điều kiện không mong muốn trong chương trình.
-
Cú pháp xử lý ngoại lệ:
- Trong Java, xử lý ngoại lệ được thực hiện bằng cách sử dụng cấu trúc
try
,catch
, vàfinally
. - Cú pháp:
1 2 3 4 5 6 7 8 9
try { // Mã có thể gây ra ngoại lệ } catch (ExceptionType1 e1) { // Xử lý ngoại lệ ExceptionType1 } catch (ExceptionType2 e2) { // Xử lý ngoại lệ ExceptionType2 } finally { // Mã trong finally sẽ được thực thi bất kể có ngoại lệ hay không }
- Trong đó:
- Khối
try
chứa mã có thể gây ra ngoại lệ. - Khối
catch
được sử dụng để xử lý các loại ngoại lệ cụ thể. - Khối
finally
chứa mã sẽ được thực thi sau khi khốitry
hoặccatch
kết thúc, dù có ngoại lệ xảy ra hay không.
- Khối
- Trong Java, xử lý ngoại lệ được thực hiện bằng cách sử dụng cấu trúc
-
Throw và Throws:
throw
được sử dụng để ném một ngoại lệ tùy chỉnh từ một phương thức hoặc khối mã.throws
được sử dụng để khai báo ngoại lệ có thể xảy ra từ một phương thức nhất định.
-
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
public class ExceptionHandlingExample { public static void main(String[] args) { try { int result = divide(10, 0); System.out.println("Result: " + result); } catch (ArithmeticException e) { System.out.println("Error: " + e.getMessage()); } finally { System.out.println("Finally block executed"); } } public static int divide(int a, int b) { if (b == 0) { throw new ArithmeticException("Divide by zero"); } return a / b; } }
Trong ví dụ này, phương thức
divide
ném một ngoại lệArithmeticException
nếub
bằng 0. Trongmain
, chúng ta sử dụngtry-catch
để xử lý ngoại lệ vàfinally
để thực hiện các hành động cuối cùng.
Xử lý ngoại lệ là một phần quan trọng trong việc viết mã Java an toàn và ổn định, đặc biệt là khi làm việc với các tác vụ mạo hiểm hoặc không đảm bảo.