Mục đích
Luyện tập khai báo lớp exception tuỳ biến và xử lí ngoại lệ.
Mô tả- Khai báo lớp exception tuỳ biến
Trong phần này, chúng ta sẽ tạo một ứng dụng để minh hoạ cho trường hợp thực hiện phép chia. Phép chia chỉ hợp lệ khi mẫu số 0, còn ngược lại thì tung ra ngoại lệ.
- Mẫu số bằng 0: Tung ra ngoại lệ: DivideByZeroException
- Mẫu số khác 0: Thực hiện phép chia
Hướng dẫn
Bước 1: Khai báo lớp DivideByZeroException
class DivideByZeroException extends Exception { public function __toString() { return "Can't divide by zero"; } }
Bước 2: Định nghĩa hàm thực hiện phép chia
function divide($numerator, $denominator) { if ($denominator === 0) { throw new DivideByZeroException(); } return $numerator / $denominator; }
Trong hàm này, nếu mẫu số bằng 0 thì chúng ta tung ra ngoại lệ DivideByZeroException.
Bước 3: Sử dụng hàm divide() và quan sát kết quả
$result = divide(100, 5); echo $result; $result = divide(100, 0); echo $result;
Kết quả:
20 Fatal error: Uncaught Can't divide by zero
Bước 4: Sử dụng khối lệnh try/catch để bắt ngoại lệ
try { $result = divide(100, 5); echo $result; $result = divide(100, 0); echo $result; } catch (DivideByZeroException $e) { echo 'Có lỗi xảy ra: '. $e; }
Kết quả:
20 Có lỗi xảy ra: Can't divide by zero
Nâng cấp: Hãy chỉnh sửa mã nguồn để không sử dụng các giá trị có sẵn như trên mà sử dụng các giá trị do người dùng nhập vào từ một form trên web.
Trên đây CodeGym đã cùng với bạn luyện tập khai báo các exception tuỳ biến và xử lí ngoại lệ. Hãy chụp ảnh màn hình và nộp bài thực hành của bạn trên CodeGymX để cùng nhau luyện tập nhé!
0 Lời bình