Профессиональное программирование на PHPСтраница 82 из 591 |
||
|
Обработка ошибок 85 Эти ошибки можно сгенерировать так: while(lfeof($fp)) { $line = fgets($fp); if(!parse_line($line)) { trigger_error("Неизвестный тип данных", E_USER_NOTICE); } } Если уровень ошибок не указан, то используется уровень E_USER_NOTICE. В дополнение к перечисленным ошибкам существует пять других категорий ошибок, которые возникают несколько реже. ■ E_PARSE— сценарий содержит синтаксическую ошибку и не может пройти синтаксический анализ. Это неисправимая ошибка. ■ E_COMPILE_ERROR— неисправимая ошибка, возникшая в ядре во время трансляции сценария. ■ ECOMPILEWARNING — исправимая ошибка, возникшая в ядре во время синтаксического анализа сценария. ■ E_CORE_ERROR — неисправимая ошибка времени выполнения, возникающая в ядре. ■ E_CORE_WARNING — исправимая ошибка времени выполнения, возникающая в ядре. В дополнение к этому в РНР используется категория ошибок E_ALL, которая охватывает все уровни отображаемых ошибок. Контролировать уровень ошибок, которые возникли в сценарии, можно с помощью опции error_reporting в файле php. ini. error_reporting — битовое поле, в котором используются определенные константы, например, ниже приведена константа для всех ошибок: error_reporting = E_ALL В директиве error_reporting для отображения всех ошибок, кроме E_NOTICE, используется следующая XOR-операция над E_ALL и E_NOTICE: error_reporting = E_ALL - E_NOTICE Аналогично, только для неисправимых ошибок в error_reporting используется побитовая операция выбора из двух типов ошибок: error_reporting = E_ERROR | E_USER_ERROR Следует отметить, что удаление E_ERROR из уровня error_reporting не разрешает игнорировать неисправимые ошибки, а только предотвращает вызов обработчика ошибок. Обработка ошибок Теперь, когда известно, какие ошибки генерирует РНР, необходимо создать план их обработки. В РНР программисту предоставляется четыре варианта обработки ошибок, соответствующих порогу error_reporting: |
| |
|
В начало ←предыдущая следующая→ ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 ... | ||