Phân loại lỗi trong PHP và dùng try catch xử lý lỗi

Chào các bạn, hôm nay NgocTan’s blog sẽ giới thiệu với các bạn cách phân loại lỗi và cách xử lý lỗi trong PHP với câu lệnh try catch trong loạt bài “Tự học PHP” đã giới thiệu từ trước.

1. Phân loại lỗi

Lỗi cú pháp (syntax error)

– Xuất hiện khi ta viết code.
– Được thông báo khi ta thực thi trang.
– Nguyên nhân: viết sai hoặc thiếu cú pháp.

  Lỗi thực thi

– Xảy ra khi ta thực thi trang.
– Khó xác định hơn lỗi cú pháp.
– Nguyên nhân: Mở một tập tin đang tồn tại, chia cho 0, truy xuất bảng không tồn tại trong cơ sở dữ liệu

Lỗi luận lý

– Xảy ra khi ta thực thi trang
– Được thể hiện dưới những hình thức hoặc những kết quả không mong đợi.
– Nguyên nhân: sai lầm trong thuật giải.

2. Dò và sửa lỗi thủ công

Khi có lỗi phát sinh thì trang thực thi sẽ tự động thông báo lỗi
Cách sửa lỗi:
– Xem thông báo lỗi và dòng xảy ra lỗi
– Mở code và sửa lỗi tại dòng đó (hoặc dòng lân cận)

3. Dùng try…catch để dò và sửa lỗi

Try … catch: cho phép thử thực hiện một khối lệnh xem có bị lỗi hay không, nếu có sẽ bẫy và xử lý lỗi.

Cấu trúc try … catch có hai khối:

– Khối try: các câu lệnh có khả năng gây ra lỗi
– Khối catch: các câu lệnh để bẫy và xử lý lỗi phát sinh trên khối try.

Một lỗi xảy ra khi thực thi trang gọi là một Exception.
Nếu dòng nào trong khối lệnh có khả năng tạo ra lỗi thì gọi trả về lỗi đó.
Trong PHP lỗi sẽ không tự động trả về => gọi lỗi đó bằng cú pháp sau:

throw new Exception(“Câu thông báo lỗi”, code);

Với câu thông báo lỗi và mã lỗi (code) đều là các tham số tùy chọn

    Cú pháp:

 

1
2
3
4
5
6
7
8
9
<?php
try{
 // Khối xử lý, đoạn muốn bắt lỗi
}
catch(Exception $ex)
{
 echo "<p>Lỗi hiện tại: " . $e->getMessage() . "</p>"; //xuất lỗi
}
?>

Lưu ý:

Các bạn chú ý là khi lập trình với những dự án nhỏ hoặc các bài tập demo, đồ án cuối khóa, đồ án cuối môn học, có thể bạn không cần các khối try catch để bắt lỗi. Tuy nhiên, khi vào công ty hoặc làm các dự án lớn, khi hệ thống vận hành tốt thì không sao. Khi hệ thống gặp lỗi nào đó hoặc khách hàng report lỗi thì lúc đó bạn sẽ thấy mệt mỏi với việc dò từng dòng code. Đó là khi bạn sẽ nhớ đến các khối try catch nhiều nhất.

Chúc các bạn thành công
Phạm Ngọc Tân    

Related Posts

Leave a Comment!

Your email address will not be published. Required fields are marked *