Hướng dẫn what is the purpose of error handling in php explain with suitable example? - mục đích của việc xử lý lỗi trong php giải thích với ví dụ phù hợp là gì?

Xử lý lỗi trong PHP rất đơn giản. Một thông báo lỗi với tên tệp, số dòng và thông báo mô tả lỗi được gửi đến trình duyệt.

Xử lý lỗi PHP

Khi tạo tập lệnh và ứng dụng web, xử lý lỗi là một phần quan trọng. Nếu mã của bạn thiếu mã kiểm tra lỗi, chương trình của bạn có thể trông rất không chuyên nghiệp và bạn có thể sẵn sàng cho các rủi ro bảo mật.

Hướng dẫn này chứa một số phương pháp kiểm tra lỗi phổ biến nhất trong PHP.

Chúng tôi sẽ hiển thị các phương pháp xử lý lỗi khác nhau:

  • Các câu lệnh "Die []" đơn giản
  • Lỗi tùy chỉnh và kích hoạt lỗi
  • Báo cáo lỗi

Xử lý lỗi cơ bản: Sử dụng hàm Die []

Ví dụ đầu tiên hiển thị một tập lệnh đơn giản mở tệp văn bản:

Nếu tệp không tồn tại, bạn có thể gặp lỗi như thế này:

CẢNH BÁO: fopen [mytestfile.txt] [function.fopen]: Không thể mở luồng: Không có tệp hoặc thư mục đó trong C: \ WebFolder \ test.php trên dòng 2: fopen[mytestfile.txt] [function.fopen]: failed to open stream:
No such file or directory in C:\webfolder\test.php on line 2

Để ngăn người dùng nhận được thông báo lỗi như ở trên, chúng tôi kiểm tra xem tệp có tồn tại trước khi chúng tôi cố gắng truy cập nó không:

Thí dụ

Hãy tự mình thử »

Bây giờ nếu tệp không tồn tại, bạn sẽ gặp lỗi như thế này:

Lỗi: Tệp không tồn tại.

Mã trên hiệu quả hơn mã trước đó, vì nó sử dụng cơ chế xử lý lỗi đơn giản để dừng tập lệnh sau lỗi.

Tuy nhiên, chỉ cần dừng kịch bản không phải lúc nào cũng là cách đúng đắn. Chúng ta hãy xem các chức năng PHP thay thế để xử lý lỗi.

Tạo trình xử lý lỗi tùy chỉnh

Tạo một xử lý lỗi tùy chỉnh khá đơn giản. Chúng tôi chỉ cần tạo một chức năng đặc biệt có thể được gọi khi xảy ra lỗi trong PHP.

Hàm này phải có khả năng xử lý tối thiểu hai tham số [mức độ lỗi và thông báo lỗi] nhưng có thể chấp nhận tối đa năm tham số [tùy chọn: tệp, số dòng và bối cảnh lỗi]:

Cú pháp

ERROR_FUNCTION [ERROR_LEVEL, ERROR_MESSAGE, ERROR_FILE, ERROR_LINE, ERROR_CONTEXT]
error_file,error_line,error_context]

Tham sốSự mô tả
ERROR_LEVELYêu cầu. Chỉ định mức báo cáo lỗi cho lỗi do người dùng xác định. Phải là một số giá trị. Xem bảng bên dưới để biết các cấp báo cáo lỗi có thể xảy ra
thông báo lỗiYêu cầu. Chỉ định thông báo lỗi cho lỗi do người dùng xác định
ERROR_FILEKhông bắt buộc. Chỉ định tên tệp trong đó xảy ra lỗi
ERROR_LINEKhông bắt buộc. Chỉ định số dòng trong đó xảy ra lỗi
ERROR_CONTEXTKhông bắt buộc. Chỉ định một mảng chứa mọi biến và giá trị của chúng, được sử dụng khi xảy ra lỗi

Mức độ báo cáo lỗi

Các cấp báo cáo lỗi này là các loại lỗi khác nhau mà trình xử lý lỗi do người dùng xác định có thể được sử dụng cho:

Giá trịKhông thay đổiSự mô tả
1 ERROR_LEVELYêu cầu. Chỉ định mức báo cáo lỗi cho lỗi do người dùng xác định. Phải là một số giá trị. Xem bảng bên dưới để biết các cấp báo cáo lỗi có thể xảy ra
2 thông báo lỗiYêu cầu. Chỉ định thông báo lỗi cho lỗi do người dùng xác định
8 ERROR_FILEKhông bắt buộc. Chỉ định tên tệp trong đó xảy ra lỗi
256 ERROR_LINEKhông bắt buộc. Chỉ định số dòng trong đó xảy ra lỗi
512 ERROR_CONTEXTKhông bắt buộc. Chỉ định một mảng chứa mọi biến và giá trị của chúng, được sử dụng khi xảy ra lỗi
1024 Mức độ báo cáo lỗiCác cấp báo cáo lỗi này là các loại lỗi khác nhau mà trình xử lý lỗi do người dùng xác định có thể được sử dụng cho:
2048 Giá trịKhông thay đổi
8191 E_errorMột lỗi thời gian chạy nghiêm trọng. Việc thực thi tập lệnh bị dừng

E_warning

Một lỗi thời gian chạy không gây tử vong. Việc thực thi tập lệnh không bị dừng
  echo "Error: [$errno] $errstr
";
  echo "Ending Script";
  die[];
}

E_notice

Một thông báo thời gian chạy. Tập lệnh đã tìm thấy một cái gì đó có thể là một lỗi, nhưng cũng có thể xảy ra khi chạy tập lệnh bình thường

E_user_error

Một lỗi do người dùng tạo ra. Điều này giống như một e_error, ngoại trừ nó được tạo bởi tập lệnh PHP bằng cách sử dụng chức năng Trigger_error []

E_user_warning

Một cảnh báo không phải là người dùng do người sử dụng tạo ra. Điều này giống như một e_warning, ngoại trừ nó được tạo bởi tập lệnh PHP bằng cách sử dụng chức năng Trigger_error []

E_user_notice

Thí dụ

Testing the error handler by trying to output variable that does not exist:

Hãy tự mình thử »
//error handler function
function customError[$errno, $errstr] {
  echo "Error: [$errno] $errstr";
}

Bây giờ nếu tệp không tồn tại, bạn sẽ gặp lỗi như thế này:
set_error_handler["customError"];

// Echo lỗi kích hoạt [$ test]; ?>
echo[$test];
?>

Đầu ra của mã trên phải là một cái gì đó như thế này:

Lỗi: [8] Biến không xác định: Kiểm tra [8] Undefined variable: test

Kích hoạt một lỗi

Trong một tập lệnh nơi người dùng có thể nhập dữ liệu, rất hữu ích khi kích hoạt lỗi khi xảy ra đầu vào bất hợp pháp. Trong PHP, điều này được thực hiện bởi hàm trigger_error[].

Thí dụ

Trong ví dụ này, một lỗi xảy ra nếu biến "kiểm tra" lớn hơn "1":

= 1] {& nbsp; Trigger_error ["Giá trị phải là 1 hoặc thấp hơn"]; }?>
$test=2;
if [$test>=1] {
  trigger_error["Value must be 1 or below"];
}
?>

Đầu ra của mã trên phải là một cái gì đó như thế này:

Lỗi: [8] Biến không xác định: Kiểm tra: Value must be 1 or below
in C:\webfolder\test.php on line 6

Kích hoạt một lỗi

Trong một tập lệnh nơi người dùng có thể nhập dữ liệu, rất hữu ích khi kích hoạt lỗi khi xảy ra đầu vào bất hợp pháp. Trong PHP, điều này được thực hiện bởi hàm trigger_error[].

  • Thí dụ
  • Trong ví dụ này, một lỗi xảy ra nếu biến "kiểm tra" lớn hơn "1":
  • = 1] {& nbsp; Trigger_error ["Giá trị phải là 1 hoặc thấp hơn"]; }?>

Thí dụ

Trong ví dụ này, một lỗi xảy ra nếu biến "kiểm tra" lớn hơn "1":

= 1] {& nbsp; Trigger_error ["Giá trị phải là 1 hoặc thấp hơn"]; }?>
//error handler function
function customError[$errno, $errstr] {
  echo "Error: [$errno] $errstr
";
  echo "Ending Script";
  die[];
}

Thông báo: Giá trị phải là 1 hoặc bên dưới trong C: \ WebFolder \ test.php trên dòng 6
set_error_handler["customError",E_USER_WARNING];

Một lỗi có thể được kích hoạt bất cứ nơi nào bạn muốn trong một tập lệnh và bằng cách thêm tham số thứ hai, bạn có thể chỉ định mức độ lỗi nào được kích hoạt.
$test=2;
if [$test>=1] {
  trigger_error["Value must be 1 or below",E_USER_WARNING];
}
?>

Đầu ra của mã trên phải là một cái gì đó như thế này:

Các loại lỗi có thể có: [512] Value must be 1 or below
Ending Script

E_USER_ERROR-Lỗi thời gian chạy do người dùng gây tử vong. Lỗi không thể phục hồi từ. Việc thực thi tập lệnh bị tạm dừng

E_USER_WARNING-Cảnh báo thời gian chạy do người dùng không phù hợp. Việc thực thi tập lệnh không bị dừng lại

E_user_notice - mặc định. Thông báo thời gian chạy do người dùng tạo. Tập lệnh đã tìm thấy một cái gì đó có thể là một lỗi, nhưng cũng có thể xảy ra khi chạy tập lệnh bình thường

Trong ví dụ này, một biến số e_user_warning xảy ra nếu biến "kiểm tra" lớn hơn "1". Nếu xảy ra E_USER_WARNING, chúng tôi sẽ sử dụng trình xử lý lỗi tùy chỉnh của chúng tôi và kết thúc tập lệnh:

Send an Error Message by E-Mail

// Đặt lỗi Handler set_error_handler ["CustomError", e_user_warning];

= 1] {& nbsp; Trigger_error ["Giá trị phải là 1 hoặc thấp hơn"]; }?>
//error handler function
function customError[$errno, $errstr] {
  echo "Error: [$errno] $errstr
";
  echo "Webmaster has been notified";
  error_log["Error: [$errno] $errstr",1,
  "","From: "];
}

Thông báo: Giá trị phải là 1 hoặc bên dưới trong C: \ WebFolder \ test.php trên dòng 6
set_error_handler["customError",E_USER_WARNING];

Một lỗi có thể được kích hoạt bất cứ nơi nào bạn muốn trong một tập lệnh và bằng cách thêm tham số thứ hai, bạn có thể chỉ định mức độ lỗi nào được kích hoạt.
$test=2;
if [$test>=1] {
  trigger_error["Value must be 1 or below",E_USER_WARNING];
}
?>

Đầu ra của mã trên phải là một cái gì đó như thế này:

Các loại lỗi có thể có: [512] Value must be 1 or below
Webmaster has been notified

E_USER_ERROR-Lỗi thời gian chạy do người dùng gây tử vong. Lỗi không thể phục hồi từ. Việc thực thi tập lệnh bị tạm dừng

E_USER_WARNING-Cảnh báo thời gian chạy do người dùng không phù hợp. Việc thực thi tập lệnh không bị dừng lại

E_user_notice - mặc định. Thông báo thời gian chạy do người dùng tạo. Tập lệnh đã tìm thấy một cái gì đó có thể là một lỗi, nhưng cũng có thể xảy ra khi chạy tập lệnh bình thường



Mục đích của việc xử lý lỗi trong PHP là gì?

Xử lý lỗi trong PHP rất đơn giản. Một thông báo lỗi với tên tệp, số dòng và thông báo mô tả lỗi được gửi đến trình duyệt.An error message with filename, line number and a message describing the error is sent to the browser.

Mục đích của chức năng xử lý lỗi là gì?

Xử lý lỗi giúp xử lý cả lỗi phần cứng và phần mềm một cách duyên dáng và giúp thực hiện tiếp tục khi bị gián đoạn.Khi nói đến việc xử lý lỗi trong phần mềm, lập trình viên sẽ phát triển các mã cần thiết để xử lý các lỗi hoặc sử dụng các công cụ phần mềm để xử lý các lỗi.helps in handling both hardware and software errors gracefully and helps execution to resume when interrupted. When it comes to error handling in software, either the programmer develops the necessary codes to handle errors or makes use of software tools to handle the errors.

Các phương pháp xử lý lỗi có sẵn trong PHP là gì?

PHP |Mảng ..
PHP |hàm mảng [] ..
PHP |ARRAY_CHANGE_KEY_CASE [] Hàm ..
PHP |hàm array_chunk [] ..
PHP |hàm array_column [] ..
PHP |hàm array_combine [] ..
PHP |ARRAY_COUNT_VALUES [] Hàm ..
PHP |hàm array_diff [] ..

Xử lý lỗi giải thích ngắn gọn là gì?

Xử lý lỗi đề cập đến các thói quen trong một chương trình đáp ứng đầu vào hoặc điều kiện bất thường.Chất lượng của các thói quen như vậy dựa trên sự rõ ràng của các thông báo lỗi và các tùy chọn được cung cấp cho người dùng để giải quyết vấn đề.the routines in a program that respond to abnormal input or conditions. The quality of such routines is based on the clarity of the error messages and the options given to users for resolving the problem.

Bài Viết Liên Quan

Chủ Đề