国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

Gateway如何捕捉Warning: Undefined array key 1

黑老怪

問題描述

Try catch 用了 但是沒有辦法捕捉到 我用的\Throwable

程序代碼或配置

<?php
/**
 * This file is part of workerman.
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the MIT-LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @author walkor<walkor@workerman.net>
 * @copyright walkor<walkor@workerman.net>
 * @link http://m.wtbis.cn/
 * @license http://www.opensource.org/licenses/mit-license.php MIT License
 */

/**
 * 用于檢測業(yè)務(wù)代碼死循環(huán)或者長時間阻塞等問題
 * 如果發(fā)現(xiàn)業(yè)務(wù)卡死,可以將下面declare打開(去掉//注釋),并執(zhí)行php start.php reload
 * 然后觀察一段時間workerman.log看是否有process_timeout異常
 */

//declare(ticks=1);

use \GatewayWorker\Lib\Gateway;

/**
 * 主邏輯
 * 主要是處理 onConnect onMessage onClose 三個方法
 * onConnect 和 onClose 如果不需要可以不用實現(xiàn)并刪除
 */
class Events
{
    public static function onWorkerStart()
    {
        $aTest = [];
        try {
            $a = $aTest[1];
        } catch (\Throwable $aErr) {
            echo 'Err----';
//            var_dump($aErr->getMessage());
        }
    }

    /**
     * 當(dāng)客戶端連接時觸發(fā)
     * 如果業(yè)務(wù)不需此回調(diào)可以刪除onConnect
     *
     * @param int $client_id 連接id
     */
    public static function onConnect($client_id)
    {
    }

    /**
     * 當(dāng)客戶端發(fā)來消息時觸發(fā)
     * @param int $client_id 連接id
     * @param mixed $message 具體消息
     */
    public static function onMessage($client_id, $message)
    {
    }

    /**
     * 當(dāng)用戶斷開連接時觸發(fā)
     * @param int $client_id 連接id
     */
    public static function onClose($client_id)
    {
    }
}

重現(xiàn)問題的步驟

直接在官網(wǎng)下載的最新版本,然后在Events里面加了一個onWorkerStart

操作系統(tǒng)環(huán)境及workerman/webman等具體版本

PHP 8.1

1944 1 1
1個回答

yongdao35

Try catch 捕獲不到 Warning Notice這些。Try catch 只能捕獲異常Exception或者Error。

onWorkerStart 里執(zhí)行一句

set_error_handler(function ($errno, $errstr, $errfile, $errline) {
    throw new \Exception($errstr, 0, $errno, $errfile, $errline);
});

這樣當(dāng)發(fā)生Warning Notice這些會觸發(fā)異常,就能捕獲了

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??