小编Lin*_*ndz的帖子

在PHP中冒泡异常?

我正在用PHP制作简单的纸牌游戏.当用户尝试播放卡片时,如果可以/不可以,我想抛出异常.而不是返回具有特定含义的数字(例如1表示坏卡,2表示轮到你...等等),我想使用自定义异常.我会捕获这些异常并向用户显示消息.

我意识到异常是出于异常错误的意思,但我认为这是设计程序的好方法.

问题是:我的例外没有被捕获.我有一个名为play.php的页面,它控制一个名为Game的类,它有一个抛出异常的Round.play.php页面从游戏中获取回合,并对其进行函数调用.但是,它说这个例外没有被发现.

这是一个快速解决方案吗?如何将Round类中的异常冒泡到play.php页面?

// in PLAY.php
try {
    $game->round->startRound($game->players);
} catch (RoundAlreadyStartedException $e) {
    echo $e->getMessage();
}

// in ROUND class
        if (!($this->plays % (self::PLAYS_PER_ROUND + $this->dealer))) {
            try {
                throw new RoundAlreadyStartedException();
            } catch (RoundAlreadyStartedException $e) {
                throw $e;
            }
            return;
        }
Run Code Online (Sandbox Code Playgroud)

我试过捕捉,不捕捉,投掷,重新抛出等等.

php exception

4
推荐指数
1
解决办法
4834
查看次数

标签 统计

exception ×1

php ×1