Zephir-异常处理

Zephir异常处理机制
本文介绍了Zephir语言中异常处理的机制,包括如何使用try-catch语句来捕获和处理异常,支持抛出静态类型或字符串异常,并展示了如何简化异常抛出过程。此外还提到了如何捕获多种类型的异常及获取异常文件和位置等关键信息。

Zephir异常处理异常处理 #异常处理机制 Zephir可以处理低级的异常,提供跟PHP类似的函数式异常处理方法。 当一个异常被抛出时,需要使用一个catch语句来捕获错误并允许用户自由处理错误。

try {

    // exceptions can be thrown here
    throw new \Exception("This is an exception");

} catch \Exception, e {

    // handle exception
    echo e->getMessage();
}

Zephir允许用户只使用try来简化错误抛出机制

try {
    throw new \Exception("This is an exception");
}

如果你不编写任何异常抛出变量,可以这样直接使用:

try {

    // exceptions can be thrown here
    throw new \Exception("This is an exception");

} catch \Exception {
    //不需要定义e直接使用就行,
    // handle exception
    echo e->getMessage();
}

一个catch语句可以捕获多个不同类型的异常

try {

    // exceptions can be thrown here
    throw new \Exception("This is an exception");

} catch RuntimeException|Exception, e {

    // handle exception
    echo e->getMessage();
}

Zephir允许直接抛出静态类型或字符串的异常,其内容会被当做异常的提示信息。

throw "Test"; // throw new \Exception("Test");
throw 't'; // throw new \Exception((string) 't');
throw 123; // throw new \Exception((string) 123);
throw 123.123; // throw new \Exception((string) 123.123);

Zephir的异常提供了跟PHP一样的异常错误提示。通过Exception::getFile()和Exception::getLine()可以获得异常文件和文件位置。

Exception: The static method 'someMethod' doesn't exist on model 'Robots'
File=phalcon/mvc/model.zep Line=4042
#0 /home/scott/test.php(64): Phalcon\Mvc\Model::__callStatic('someMethod', Array)
#1 /home/scott/test.php(64): Robots::someMethod()
#2 {main}

转载于:https://my.oschina.net/yanpengquan/blog/631408

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值