Kesilapan CakePHP & Pengendalian Pengecualian

WBOY
Lepaskan: 2024-09-10 17:26:09
asal
806 orang telah melayarinya

Kegagalan sistem perlu ditangani dengan berkesan untuk kelancaran sistem. CakePHP datang dengan perangkap ralat lalai, yang mencetak dan mencatat ralat semasa ia berlaku. Pengendali ralat yang sama ini digunakan untuk menangkap Pengecualian.

Pengendali ralat memaparkan ralat, apabila nyahpepijat adalah benar dan log ralat, apabila nyahpepijat adalah palsu. CakePHP mempunyai bilangan kelas pengecualian dan pengendalian pengecualian terbina dalam akan menangkap sebarang pengecualian yang tidak ditangkap dan menjadikan halaman berguna.

Ralat dan Konfigurasi Pengecualian

Ralat dan Pengecualian boleh dikonfigurasikan dalam fail configapp.php. Pengendalian ralat menerima beberapa pilihan yang membolehkan anda menyesuaikan pengendalian ralat untuk aplikasi anda −

<?php namespace App\Controller;
   use App\Controller\AppController;
   use Cake\Core\Exception\Exception;
   class ExpsController extends AppController {
      public function index($arg1,$arg2) {
         try{
            $this->set('argument1',$arg1);
            $this->set('argument2',$arg2);
            if(($arg1 > 1 || $arg1 > 10) || ($arg2  10))
               throw new Exception("One of the number is out of range [1-10].");
         } catch(\Exception $ex){
            echo $ex->getMessage();
         }
      }
   }
?>
Salin selepas log masuk
Contoh

Buat perubahan dalam fail config/routes.php seperti yang ditunjukkan dalam kod berikut. config/routes.php

Buat fail

ExpsController.php
This is CakePHP tutorial and this is an example of Passed arguments.<br>
Argument-1: =$argument1?><br>
Argument-2: =$argument2?><br>
Salin selepas log masuk
di

src/Controller/ExpsController.php.

Salin kod berikut dalam fail pengawal.

src/Controller/ExpsController.php

Kesilapan CakePHP & Pengendalian PengecualianBuat direktori Exps di src/Template dan di bawah direktori itu cipta fail View yang dipanggil index.php. Salin kod berikut dalam fail itu. src/Template/Exps/index.php Laksanakan contoh di atas dengan melawati URL berikut. http://localhost/cakephp4/exception/5/0 Output Setelah pelaksanaan, anda akan menerima output berikut.
Pilihan Jenis Data Penerangan
errorLevel int
Option Data Type Description
errorLevel int

The level of errors you are interested in capturing. Use the built-in php error constants, and bitmasks to select the level of error you are interested in.

trace bool

Include stack traces for errors in log files. Stack traces will be included in the log after each error. This is helpful for finding where/when errors are being raised.

exceptionRenderer string

The class responsible for rendering uncaught exceptions. If you choose a custom class, you should place the file for that class in src/Error. This class needs to implement a render() method.

log bool

When true, exceptions + their stack traces will be logged to CakeLogLog.

skipLog array

An array of exception class names that should not be logged. This is useful to remove NotFoundExceptions or other common, but uninteresting logs messages.

extraFatalErrorMemory int

Set to the number of megabytes to increase the memory limit by, when a fatal error is encountered. This allows breathing room to complete logging or error handling.

Tahap ralat yang anda berminat untuk tangkap. Gunakan pemalar ralat php terbina dalam dan bitmasks untuk memilih tahap ralat yang anda minati.
jejak bool

Sertakan surih tindanan untuk ralat dalam fail log. Surih tindanan akan dimasukkan dalam log selepas setiap ralat. Ini berguna untuk mencari tempat/bila ralat ditimbulkan.

exceptionRenderer rentetan

Kelas yang bertanggungjawab untuk memberikan pengecualian yang tidak ditangkap. Jika anda memilih kelas tersuai, anda harus meletakkan fail untuk kelas tersebut dalam

src/Error

. Kelas ini perlu melaksanakan kaedah render().

log bool
<?php use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']);
   $builder->connect('/exception/:arg1/:arg2',
      ['controller'=>'Exps','action'=>'index'],
      ['pass' => ['arg1', 'arg2']]);
   $builder->fallbacks();
});
Salin selepas log masuk
Apabila benar, pengecualian + surih tindanannya akan dilog ke

CakeLogLog.

skipLog tatasusunan Susun atur nama kelas pengecualian yang tidak sepatutnya dilog. Ini berguna untuk mengalih keluar NotFoundExceptions atau mesej log biasa tetapi tidak menarik yang lain.

extraFatalErrorMemory int Tetapkan kepada bilangan megabait untuk meningkatkan had memori sebanyak, apabila ralat maut ditemui. Ini membolehkan ruang pernafasan menyelesaikan pembalakan atau pengendalian ralat.

Atas ialah kandungan terperinci Kesilapan CakePHP & Pengendalian Pengecualian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!