Thử bắt trong php là gì?

PHP try-catch được triển khai với các khối try and catch như thường lệ. Và, hãy thử khối chứa mã có tính năng xử lý ngoại lệ PHP bằng cách loại bỏ các ngoại lệ xảy ra trong khi thực thi các tập lệnh PHP. Các ngoại lệ như vậy được bắt với khối bắt PHP

Đối với mỗi khối thử trong chương trình PHP, phải có tối thiểu một khối bắt. Chúng ta có thể có nhiều khối bắt cho một khối thử, để xử lý các lớp ngoại lệ PHP khác nhau

PHP try-ném-bắt Cú pháp

Khối mã sau đây cho biết cách sử dụng thử và bắt trong chương trình PHP


Ví dụ PHP đơn giản cho try-catch

Hãy để chúng tôi có một ví dụ thử bắt PHP đơn giản bằng cách sử dụng cú pháp trên

 $value] {
            echo $key . " = " . $value . "
"; } } else { throw new Exception["PHP GET global array is empty"]; } } catch [Exception $e] { echo $e->getMessage[]; } ?>

Trong ví dụ trên, khối try kiểm tra độ dài của biến mảng toàn cục PHP $_GET để in phần tử của nó bằng cách lặp qua khối PHP foreach

Nếu độ dài của mảng $_GET là 0, thì một ngoại lệ sẽ được đưa ra. Các câu lệnh lặp và ném được xử lý bằng phần if và other của khối try trong chương trình PHP ở trên

PHP thử với Nhiều lần bắt

Như chúng tôi đã chỉ định ở phần đầu, nhiều khối bắt cho một khối thử PHP duy nhất được sử dụng để xử lý các ngoại lệ được phân loại. Ví dụ, thư viện PHP cung cấp các lớp ngoại lệ riêng biệt như LogicException, RunTimeException, v.v. bằng cách kế thừa lớp Exception gốc

Chương trình PHP sau đây chứa một số khối có điều kiện đưa ra các loại ngoại lệ PHP khác nhau tương ứng. Ví dụ,

";
} catch [Exception $e] {
    echo $e->getMessage[];
} catch [InvalidArgumentException $e] {
    echo $e->getMessage[];
}

function get_timestamp[$time_param]
{
    $time_param_length = count[$time_param];
    if [$time_param_length != 0] {
        for [$i = 0; $i < $time_param_length; $i ++] {
            if [! is_numeric[$time_param[$i]]] {
                throw new InvalidArgumentException["parameter $i should be numeric, " . gettype[$time_param[$i]] . " is given"];
            }
        }
    } else {
        throw new Exception["no argument is passed for calculating timestmap"];
    }
    $timestamp = mktime[$time_param[0], $time_param[1], $time_param[2], $time_param[3], $time_param[4], $time_param[5]];
    return $timestamp;
}
?>

Trong ví dụ này, chúng tôi đang tính toán giá trị dấu thời gian bằng PHP mktime[] với mảng tham số đã cho. Vì mktime[] chấp nhận các giá trị số dưới dạng tọa độ ngày, nên chúng ta nên đánh giá tất cả các tham số trước khi chúng được chuyển vào hàm này

Khi thực hiện xác thực PHP, nếu có bất cứ điều gì sai với kiểu dữ liệu, thì InvalidArgumentException sẽ bị ném. Trong trường hợp, nếu mảng tham số trống, thì thể hiện của lớp Ngoại lệ được sử dụng để ném

Hai phân loại ngoại lệ này được xử lý bằng hai khối bắt độc lập được cung cấp cho một khối thử duy nhất được sử dụng trong ví dụ này

Thử bắt lồng nhau trong PHP

Chúng ta có thể tạo các khối PHP lồng nhau để xử lý các ngoại lệ tiếp theo, mỗi ngoại lệ xảy ra do nguyên nhân của ngoại lệ trước đó. Ví dụ: nếu chúng tôi tải lên một tệp, chúng tôi cần kiểm tra sự tồn tại của nó. Nếu không có tệp nào như vậy tồn tại, thì PHP sẽ bắt tệp không tìm thấy ngoại lệ và do đó gây ra lỗi không thể tải tệp lên

Trong tình huống như vậy, chúng ta có thể sử dụng các khối try-catch lồng nhau để hiển thị thông báo lỗi liên quan đến tất cả các ngoại lệ đã xảy ra. Ví dụ,

getMessage[] . "
"; while [$e = $e->getPrevious[]] { echo 'Previous Error: ' . $e->getMessage[] . "
"; } } function upload_file[$filename] { try { if [file_exists[$filename]] { // code for file uploading } else { throw new Exception['file not found']; } } catch [Exception $e] { throw new Exception['unable to upload file', 0, $e]; } } ?>

Bằng cách chuyển trường hợp lỗi trước đó của lớp Ngoại lệ, chúng ta có thể nắm bắt các ngoại lệ lồng nhau. Và, chương trình này sẽ trả về đầu ra sau

Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng câu lệnh PHP

getMessage[] . "
"; while [$e = $e->getPrevious[]] { echo 'Previous Error: ' . $e->getMessage[] . "
"; } } function upload_file[$filename] { try { if [file_exists[$filename]] { // code for file uploading } else { throw new Exception['file not found']; } } catch [Exception $e] { throw new Exception['unable to upload file', 0, $e]; } } ?>
1 để xử lý các ngoại lệ

Giới thiệu về câu lệnh try…catch trong PHP

Trong lập trình, các lỗi không mong muốn được gọi là ngoại lệ. Các trường hợp ngoại lệ có thể đang cố đọc một tệp không tồn tại hoặc đang kết nối với máy chủ cơ sở dữ liệu hiện đang ngừng hoạt động

Thay vì tạm dừng tập lệnh, bạn có thể xử lý các ngoại lệ một cách duyên dáng. Đây được biết là xử lý ngoại lệ

Để xử lý các ngoại lệ, bạn sử dụng câu lệnh

getMessage[] . "
"; while [$e = $e->getPrevious[]] { echo 'Previous Error: ' . $e->getMessage[] . "
"; } } function upload_file[$filename] { try { if [file_exists[$filename]] { // code for file uploading } else { throw new Exception['file not found']; } } catch [Exception $e] { throw new Exception['unable to upload file', 0, $e]; } } ?>
1. Đây là một cú pháp điển hình của câu lệnh
getMessage[] . "
"; while [$e = $e->getPrevious[]] { echo 'Previous Error: ' . $e->getMessage[] . "
"; } } function upload_file[$filename] { try { if [file_exists[$filename]] { // code for file uploading } else { throw new Exception['file not found']; } } catch [Exception $e] { throw new Exception['unable to upload file', 0, $e]; } } ?>
1

1 có hai khối.

Chủ Đề