官术网_书友最值得收藏!

Errors and exceptions

In PHP7, most errors are now reported as error exceptions. Only a few fatal errors halt script execution; otherwise, if you are carrying out error or exception handling, it will not halt the script. This is because now the Errors class implements a Throwable interface just like the Exception class, which also implements Throwable. So now, in most cases, fatal errors can be avoided through exception handling.

Here are some sub-classes of the error class:

  • TypeError
  • ParseError
  • ArithmeticError
    • DivisionByZeroError
  • AssertionError

This is how you can simply catch an error and handle it:

try {
fn();
} catch(Throwable $error){
echo $error->getMessage(); //Call to undefined function fn()
}

Here, $error->getMessage() is a method that is actually returning this message as a string. In our preceding example, the message will be similar to this: Call to undefined function fn().

This is not the only method you can use. Here is a list of methods that are defined in the Throwable interface; you can use them accordingly during error/exception handling. After all, the Exception and Error classes both implement the same Throwable interface:

interface Throwable
{
public function getMessage(): string;
public function getCode(): int;
public function getFile(): string;
public function getLine(): int;
public function getTrace(): array;
public function getTraceAsString(): string;
public function getPrevious(): Throwable;
public function __toString(): string;
}
主站蜘蛛池模板: 常德市| 什邡市| 思茅市| 武邑县| 鄂托克前旗| 潢川县| 通化县| 玉田县| 西和县| 潜江市| 阿坝| 青海省| 衡南县| 金湖县| 精河县| 万载县| 镇远县| 新兴县| 乌恰县| 连江县| 府谷县| 阿拉善左旗| 团风县| 哈巴河县| 甘孜| 永川市| 南康市| 贵阳市| 修文县| 嘉峪关市| 巍山| 家居| 西乌珠穆沁旗| 滨海县| 南汇区| 厦门市| 克什克腾旗| 福鼎市| 仲巴县| 苗栗市| 宜春市|