Apabila berurusan dengan fungsi PHP seperti dns_get_record yang memberikan amaran tentang kegagalan, cuba/tangkap blok bukanlah penyelesaian yang berkesan. Walau bagaimanapun, terdapat pendekatan alternatif untuk mengendalikan amaran:
Anda boleh menetapkan sementara pengendali ralat tersuai menggunakan set_error_handler() untuk mengabaikan amaran. Selepas panggilan API, pulihkan pengendali sebelumnya dengan restore_error_handler().
set_error_handler(function() { /* ignore errors */ }); dns_get_record(); restore_error_handler();
Dengan menetapkan pengendali ralat tersuai dan menggunakan kelas ErrorException, anda boleh menukar ralat PHP ke dalam pengecualian:
set_error_handler(function($errno, $errstr, $errfile, $errline) { // exclude suppressed errors if (0 === error_reporting()) { return false; } throw new ErrorException($errstr, 0, $errno, $errfile, $errline); }); try { dns_get_record(); } catch (ErrorException $e) { // ... }
Walaupun mungkin untuk menyekat amaran menggunakan pengendali @, ini biasanya tidak disyorkan kerana ia boleh menutup kemungkinan isu. Sebaliknya, semak nilai pulangan dns_get_record() untuk menentukan sama ada ralat telah berlaku.
Ingat, adalah penting untuk mempertimbangkan konteks dan akibat pendekatan yang anda pilih semasa mengendalikan amaran dalam PHP.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Amaran dengan Berkesan daripada Fungsi PHP Seperti `dns_get_record()` Tanpa Menggunakan `cuba/tangkap`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!