Hướng dẫn which function is used for php error handling? - chức năng nào được sử dụng để xử lý lỗi php?


Xử lý lỗi là quá trình bắt các lỗi được đưa ra bởi chương trình của bạn và sau đó thực hiện hành động thích hợp. Nếu bạn sẽ xử lý các lỗi đúng thì nó có thể dẫn đến nhiều hậu quả không lường trước được.

Nó rất đơn giản trong PHP để xử lý một lỗi.

Sử dụng hàm chết ()

Trong khi viết chương trình PHP của bạn, bạn nên kiểm tra tất cả các điều kiện lỗi có thể xảy ra trước khi đi trước và thực hiện hành động thích hợp khi được yêu cầu.

Hãy thử ví dụ sau mà không có tệp /tmp/test.xt và với tệp này./tmp/test.xt file and with this file.

Bằng cách này, bạn có thể viết một mã hiệu quả. Sử dụng kỹ thuật trên, bạn có thể dừng chương trình của mình bất cứ khi nào lỗi và hiển thị thông báo thân thiện với người dùng và có ý nghĩa hơn.

Xác định chức năng xử lý lỗi tùy chỉnh

Bạn có thể viết chức năng của riêng bạn để xử lý bất kỳ lỗi nào. PHP cung cấp cho bạn một khung để xác định chức năng xử lý lỗi.

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);
Sr.NoMô tả về Thông Số
1

error_level

Yê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ị.

2

error_message

Yêu cầu - Chỉ định thông báo lỗi cho lỗi do người dùng xác định

3

error_file

Tùy chọn - Chỉ định tên tệp trong đó xảy ra lỗi

4

error_line

Tùy chọn - Chỉ định số dòng trong đó xảy ra lỗi

5

error_context

Tùy chọn - 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 độ lỗi có thể

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. Các giá trị này được sử dụng kết hợp bằng cách sử dụng | nhà điều hành| operator

Sr.NoHằng số & Mô tảGiá trị
1

.E_ERROR

Lỗi thời gian chạy nghiêm trọng. Việc thực thi tập lệnh bị tạm dừng

1
2

E_WARNING

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 lại

2
3

E_PARSE

Biên dịch lỗi phân tích cú pháp thời gian. Lỗi phân tích cú pháp chỉ nên được tạo bởi trình phân tích cú pháp.

4
4

E_NOTICE

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

8
5

E_CORE_ERROR

Lỗi gây tử vong xảy ra trong thời gian khởi động ban đầu của PHP.

16
6

E_CORE_WARNING

Lỗi thời gian chạy không gây tử vong. Điều này xảy ra trong thời gian khởi động ban đầu của PHP.

32
7

E_USER_ERROR

Lỗi do người dùng tạo ra. Điều này giống như một E_Error được đặt bởi lập trình viên bằng cách sử dụng hàm php trigger_error ()

256
8

E_USER_WARNING

Cảnh báo không gây tử vong do người dùng tạo. Điều này giống như một tập hợp E_Warning của lập trình viên bằng cách sử dụng hàm PHP Trigger_error ()

512
9

E_USER_NOTICE

Thông báo do người dùng tạo. Điều này giống như một e_notice được đặt bởi lập trình viên bằng cách sử dụng chức năng PHP Trigger_error ()

1024
10

E_STRICT

Thông báo thời gian chạy. Cho phép có PHP đề xuất thay đổi mã của bạn, điều này sẽ đảm bảo khả năng tương tác tốt nhất và khả năng tương thích chuyển tiếp mã của bạn.

2048
11

E_RECOVERABLE_ERROR

Lỗi nghiêm trọng có thể bắt được. Điều này giống như một e_error nhưng có thể bị bắt bởi một tay cầm do người dùng xác định (xem thêm set_error_handler ())

4096
12

E_ALL

Tất cả các lỗi và cảnh báo, ngoại trừ cấp E_strict (e_strict sẽ là một phần của e_all kể từ Php 6.0)

8191

Tất cả các mức lỗi trên có thể được đặt bằng cách sử dụng chức năng thư viện tích hợp PHP sau trong đó CAB CAB là bất kỳ giá trị nào được xác định trong bảng trên.

int error_reporting ( [int $level] )

Sau đây là cách bạn có thể tạo một chức năng xử lý lỗi -

Error: [$errno] $errstr - $error_file:$error_line";
      echo "
"; echo "Terminating PHP Script"; die(); } ?>

Khi bạn xác định trình xử lý lỗi tùy chỉnh của mình, bạn cần đặt nó bằng chức năng set_error_handler tích hợp PHP. Bây giờ hãy kiểm tra ví dụ của chúng tôi bằng cách gọi một hàm không tồn tại.set_error_handler function. Now lets examine our example by calling a function which does not exist.

Error: [$errno] $errstr - $error_file:$error_line";
      echo "
"; echo "Terminating PHP Script"; die(); } //set error handler set_error_handler("handleError"); //trigger error myFunction(); ?>

Xử lý ngoại lệ

Php 5 có một mô hình ngoại lệ tương tự như các ngôn ngữ lập trình khác. Các trường hợp ngoại lệ rất quan trọng và cung cấp kiểm soát tốt hơn đối với xử lý lỗi.

Hãy giải thích có từ khóa mới liên quan đến các ngoại lệ.

  • Hãy thử - một chức năng sử dụng một ngoại lệ phải nằm trong khối "thử". Nếu ngoại lệ không kích hoạt, mã sẽ tiếp tục như bình thường. Tuy nhiên, nếu các kích hoạt ngoại lệ, một ngoại lệ là "ném". − A function using an exception should be in a "try" block. If the exception does not trigger, the code will continue as normal. However if the exception triggers, an exception is "thrown".

  • Ném - đây là cách bạn kích hoạt một ngoại lệ. Mỗi "ném" phải có ít nhất một "bắt". − This is how you trigger an exception. Each "throw" must have at least one "catch".

  • Bắt - Khối "bắt" lấy một ngoại lệ và tạo một đối tượng chứa thông tin ngoại lệ. − A "catch" block retrieves an exception and creates an object containing the exception information.

Khi một ngoại lệ được ném, mã theo câu lệnh sẽ không được thực thi và PHP sẽ cố gắng tìm khối bắt khớp đầu tiên. Nếu một ngoại lệ không bị bắt, một lỗi nghiêm trọng của PHP sẽ được đưa ra với một "ngoại lệ không bị tổn thương ...

  • Một ngoại lệ có thể được ném và bị bắt ("bắt") trong PHP. Mã có thể được bao quanh trong một khối thử.

  • Mỗi lần thử phải có ít nhất một khối đánh bắt tương ứng. Nhiều khối đánh bắt có thể được sử dụng để bắt các lớp ngoại lệ khác nhau.

  • Các trường hợp ngoại lệ có thể được ném (hoặc ném lại) trong một khối bắt.

Thí dụ

Sau đây là phần của mã, sao chép và dán mã này vào một tệp và xác minh kết quả.

getMessage(), "\n";
   }
   
   // Continue execution
   echo 'Hello World';
?>

Trong ví dụ trên $ e-> getMessage chức năng được sử dụng để nhận thông báo lỗi. Có các chức năng sau đây có thể được sử dụng từ lớp ngoại lệ.Exception class.

  • getMessage () - thông điệp ngoại lệ − message of exception

  • getCode () - mã ngoại lệ − code of exception

  • getfile () - tên tệp nguồn − source filename

  • GetLine () - dòng nguồn − source line

  • getTrace () - n mảng của backtrace () − n array of the backtrace()

  • GetTraceAsString () - chuỗi theo dõi được tạo thành − formated string of trace

Tạo người xử lý ngoại lệ tùy chỉnh

Bạn có thể xác định trình xử lý ngoại lệ tùy chỉnh của riêng bạn. Sử dụng chức năng sau để đặt chức năng xử lý ngoại lệ do người dùng xác định.

string set_exception_handler ( callback $exception_handler )

Ở đây ngoại lệ_handler là tên của hàm được gọi khi xảy ra ngoại lệ chưa được thực hiện. Hàm này phải được xác định trước khi gọi set_exception_handler ().exception_handler is the name of the function to be called when an uncaught exception occurs. This function must be defined before calling set_exception_handler().

Thí dụ

getMessage(), "\n";
   }
	
   set_exception_handler('exception_handler');
   throw new Exception('Uncaught Exception');
   
   echo "Not Executed\n";
?>

Kiểm tra bộ hoàn chỉnh các chức năng xử lý lỗi tại các chức năng xử lý lỗi PHP

Điều gì là xử lý lỗi PHP hợp lệ?

Với Php 5 đã xuất hiện một cách xử lý các lỗi đối tượng mới.Xử lý ngoại lệ được sử dụng để thay đổi luồng thông thường của thực thi mã nếu xảy ra một điều kiện lỗi (ngoại lệ) được chỉ định.Điều kiện này được gọi là một ngoại lệ.Exception handling is used to change the normal flow of the code execution if a specified error (exceptional) condition occurs. This condition is called an exception.

Hàm nào ném thông báo lỗi trong xử lý tệp PHP?

Theo mặc định, PHP gửi nhật ký lỗi đến hệ thống ghi nhật ký của máy chủ hoặc tệp, tùy thuộc vào cách cấu hình ERROR_LOG được đặt trong PHP.Tệp INI.Bằng cách sử dụng hàm ERROR_LOG (), bạn có thể gửi nhật ký lỗi đến một tệp được chỉ định hoặc đích từ xa.error_log() function you can send error logs to a specified file or a remote destination.

Việc sử dụng chức năng báo cáo lỗi trong PHP là gì?

Hàm error_Reporting () chỉ định các lỗi nào được báo cáo.PHP có nhiều mức độ lỗi và sử dụng chức năng này đặt mức đó cho tập lệnh hiện tại.specifies which errors are reported. PHP has many levels of errors, and using this function sets that level for the current script.

Mức lỗi nào được sử dụng trong PHP?

Lỗi PHP: 4 loại khác nhau (cảnh báo, phân tích, gây tử vong và lỗi thông báo)Warning, Parse, Fatal, and Notice Error)