Hướng dẫn php convert error to exception - lỗi chuyển đổi php thành ngoại lệ

Tôi đã viết lớp xử lý lỗi đã chia tất cả các lỗi thành các lỗi bình thường [thông báo, cảnh báo, ...] và các lỗi quan trọng.

Bây giờ tôi đã phát hiện ra rằng đó là một thực hành tốt để chuyển đổi tất cả các lỗi thành ngoại lệ. Nó cũng sẽ rút ngắn mã của tôi.

Tuy nhiên, tôi không chắc làm thế nào để xử lý điều này ...

  1. Có những trường hợp ngoại lệ không dừng thực thi tập lệnh và các ngoại lệ làm? Nếu không có ... làm thế nào để khác nhau các lỗi đã chuyển đổi?
  2. Chuyển đổi lỗi thành ngoại lệ được thực hiện bằng cách gọi set_error_handler [] và ném errorException [] mới vào đó ... Điều gì tiếp theo? set_exception_handler [] được gọi là tự động?

Peehaa

70.2K58 Huy hiệu vàng185 Huy hiệu bạc260 Huy hiệu Đồng58 gold badges185 silver badges260 bronze badges

Đã hỏi ngày 25 tháng 11 năm 2012 lúc 17:45Nov 25, 2012 at 17:45

2

  1. Các trường hợp ngoại lệ không ngăn chặn kịch bản của bạn, tất cả những người chưa được thực hiện.all uncaught ones do.

  2. Không, set_exception_handler[] không được gọi tự động, bạn có thể làm điều đó nếu bạn thích.set_exception_handler[] is not called automatically, you can do that if you like.

    Trình xử lý ngoại lệ mà bạn đặt với set_exception_handler[] được gọi sau khi một ngoại lệ đã không được thực hiện, đó là đoạn mã cuối cùng được gọi trước khi tập lệnh chấm dứt. Đảm bảo rằng nó không gây ra lỗi/ngoại lệ, hoặc nó sẽ kết thúc tồi tệ.

Đã trả lời ngày 25 tháng 11 năm 2012 lúc 17:48Nov 25, 2012 at 17:48

phant0mphant0mphant0m

16.3k5 Huy hiệu vàng47 Huy hiệu bạc81 Huy hiệu đồng5 gold badges47 silver badges81 bronze badges

4

  1. Có những trường hợp ngoại lệ không dừng thực thi tập lệnh và các ngoại lệ làm? Nếu không có ... làm thế nào để khác nhau các lỗi đã chuyển đổi?

Chuyển đổi lỗi thành ngoại lệ được thực hiện bằng cách gọi set_error_handler [] và ném errorException [] mới vào đó ... Điều gì tiếp theo? set_exception_handler [] được gọi là tự động?

try {
    // ...
} catch [ErrorException $e] {
    // converted error [probably]
} catch [Exception $e] {
    // another kind of exception; this basically catches all
}

Or:

function handle_exception[Exception $e]
{
    if [$e instanceof ErrorException] {
        // converted error [probably]
    } else {
        // another kind of exception
    }
}
set_exception_handler['handle_exception'];

Peehaa

  1. Chuyển đổi lỗi thành ngoại lệ được thực hiện bằng cách gọi set_error_handler [] và ném errorException [] mới vào đó ... Điều gì tiếp theo? set_exception_handler [] được gọi là tự động?

Peehaa

70.2K58 Huy hiệu vàng185 Huy hiệu bạc260 Huy hiệu ĐồngNov 25, 2012 at 18:11

Đã hỏi ngày 25 tháng 11 năm 2012 lúc 17:45Ja͢ck

Các trường hợp ngoại lệ không ngăn chặn kịch bản của bạn, tất cả những người chưa được thực hiện.37 gold badges257 silver badges306 bronze badges

0

Không, set_exception_handler[] không được gọi tự động, bạn có thể làm điều đó nếu bạn thích.

Trình xử lý ngoại lệ mà bạn đặt với set_exception_handler[] được gọi sau khi một ngoại lệ đã không được thực hiện, đó là đoạn mã cuối cùng được gọi trước khi tập lệnh chấm dứt. Đảm bảo rằng nó không gây ra lỗi/ngoại lệ, hoặc nó sẽ kết thúc tồi tệ.If an exception is not caught, a PHP Fatal Error will be issued with an "Uncaught Exception ..." message, unless a handler has been defined with set_exception_handler[].

Đã trả lời ngày 25 tháng 11 năm 2012 lúc 17:48

16.3k5 Huy hiệu vàng47 Huy hiệu bạc81 Huy hiệu đồng

Các trường hợp ngoại lệ không dừng thực thi tập lệnh nếu chúng bị bắt. Để nhận ra một lỗi đã chuyển đổi:

Lưu ý rằng ErrorException có thể được ném bởi bất kỳ đoạn mã nào, nhưng nó chỉ nhằm chuyển đổi các lỗi thường xuyên trong các chức năng đã đăng ký set_error_handler[].Nov 25, 2012 at 17:49

Nếu ném ErrorException từ hàm xử lý lỗi của bạn không bị bắt ở bất kỳ nơi nào khác trong mã của bạn, trình xử lý ngoại lệ đã đăng ký [được đặt bằng set_exception_handler[]] sẽ được gọi.Marcin Orlowski

Đã trả lời ngày 25 tháng 11 năm 2012 lúc 18:1110 gold badges118 silver badges137 bronze badges

Ja͢ckja͢ck

set_error_handler[function [$severity, $message, $file, $line] {
  echo 'You will never see this.'
}];

// Provoke an error
function_that_does_not_exist[];

168K37 Huy hiệu vàng257 Huy hiệu bạc 306 Huy hiệu đồng

Bất kỳ ngoại lệ chưa học sẽ ngừng thực thi tập lệnh của bạn.Oct 24, 2016 at 12:38

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 thông báo "ngoại lệ không bị tổn thương ...", trừ khi một trình xử lý đã được xác định với set_exception_handler [].AndreKR

Xem tài liệu về điều này16 gold badges103 silver badges161 bronze badges

1

Làm cách nào để nhận mã lỗi từ ngoại lệ trong PHP?

Phương thức Php Exception GetCode [] Phương thức GetCode [] trả về một số nguyên có thể được sử dụng để xác định ngoại lệ.getCode[] Method The getCode[] method returns an integer which can be used to identify the exception.

Chức năng PHP nào trả về một thông báo lỗi được liên kết với một ngoại lệ?

Lớp CustomException [] được tạo như một phần mở rộng của lớp ngoại lệ cũ.Bằng cách này, nó kế thừa tất cả các phương thức và thuộc tính từ lớp ngoại lệ cũ.Hàm errorMessage [] được tạo.Hàm này trả về một thông báo lỗi nếu địa chỉ e-mail không hợp lệ.errorMessage[] function is created. This function returns an error message if an e-mail address is invalid.

PHP có thử bắt không?

Phương pháp chính để xử lý các ngoại lệ trong PHP là thử.Tóm lại, việc bắt thử là một khối mã có thể được sử dụng để xử lý các ngoại lệ ném mà không làm gián đoạn việc thực thi chương trình.Nói cách khác, bạn có thể "thử" để thực thi một khối mã và "bắt" bất kỳ ngoại lệ PHP nào được ném.. In a nutshell, the try-catch is a code block that can be used to deal with thrown exceptions without interrupting program execution. In other words, you can "try" to execute a block of code, and "catch" any PHP exceptions that are thrown.

Làm thế nào tôi có thể nhận được 500 lỗi trong PHP?

Bạn có thể giải quyết lỗi PHP 500 bằng cách tạm thời xóa tệp HTAccess đã cấu hình sai.Lỗi 500 có thể biến mất bằng cách tăng các giá trị được đặt cho cài đặt MAX_EXECUTY_TIME và Memory_Limit.Đặt quyền tệp thành 644 hoặc 755 có thể giúp giải quyết lỗi 500 máy chủ nội bộ.temporarily deleting the misconfigured htaccess file. The 500 error can go away by increasing the values set for the max_execution_time and the memory_limit settings. Setting the file permission to 644 or 755 can help in resolving the 500 internal server error.

Bài Viết Liên Quan

Chủ Đề