Я хочу поймать эту ошибку:
$a[1] = 'jfksjfks';
try {
$b = $a[0];
} catch (\Exception $e) {
echo "jsdlkjflsjfkjl";
}
Изменить: Фактически, я получил эту ошибку в следующей строке:
$parse = $xml->children[0]->children[0]->toArray();
Я хочу поймать эту ошибку:
$a[1] = 'jfksjfks';
try {
$b = $a[0];
} catch (\Exception $e) {
echo "jsdlkjflsjfkjl";
}
Изменить: Фактически, я получил эту ошибку в следующей строке:
$parse = $xml->children[0]->children[0]->toArray();
Вам нужно определить свой собственный обработчик ошибок, например:
<?php
set_error_handler('exceptions_error_handler');
function exceptions_error_handler($severity, $message, $filename, $lineno) {
if (error_reporting() == 0) {
return;
}
if (error_reporting() & $severity) {
throw new ErrorException($message, 0, $severity, $filename, $lineno);
}
}
$a[1] = 'jfksjfks';
try {
$b = $a[0];
} catch (Exception $e) {
echo "jsdlkjflsjfkjl";
}
Вы не можете с блоком try/catch, так как это ошибка, а не исключение.
Всегда пытается выполнить смещение перед использованием:
if( isset( $a[ 0 ] ) { $b = $a[ 0 ]; }
$a[1] = 'jfksjfks';
try {
$offset = 0;
if(isset($a[$offset]))
$b = $a[$offset];
else
throw new Exception("Notice: Undefined offset: ".$offset);
} catch (Exception $e) {
echo $e->getMessage();
}
Или, без неэффективности создания очень временного исключения:
$a[1] = 'jfksjfks';
$offset = 0;
if(isset($a[$offset]))
$b = $a[$offset];
else
echo "Notice: Undefined offset: ".$offset;
Я знаю это 2016, но в случае, если кто-то попадает на этот пост.
Вы можете использовать метод array_key_exists($index, $array)
, чтобы избежать исключения.
$index = 99999;
$array = [1,2,3,4,5,6];
if(!array_key_exists($index, $array))
{
//Throw myCustomException;
}
Обычно вы не можете улавливать уведомления с помощью блока try-catch. Но вы можете конвертировать уведомления в исключения! Используйте этот способ:
function get_notice($output)
{
if (($noticeStartPoint = strpos($output, "<b>Notice</b>:")) !== false) {
$position = $noticeStartPoint;
for ($i = 0; $i < 3; $i++)
$position = strpos($output, "</b>", $position) + 1;
$noticeEndPoint = $position;
$noticeLength = $noticeEndPoint + 3 - $noticeStartPoint;
$noticeMessage = substr($output, $noticeStartPoint, $noticeLength);
throw new \Exception($noticeMessage);
} else
echo $output;
}
try {
ob_start();
// Codes here
$codeOutput = ob_get_clean();
get_notice($codeOutput);
} catch (\Exception $exception) {
// Catch (notice also)!
}
Кроме того, эту функцию можно использовать для обнаружения предупреждений. Просто измените имя функции на get_warning и измените "<b>Notice</b>:"
на "<b>Warning</b>:"
.
Примечание.. Функция будет захватывать невинный вывод, содержащий:
< б > Примечание </б >
Но чтобы избежать этой проблемы, просто измените ее на:
< б > Примечание: </б >
Я уверен, почему Ошибка, но я исправлю некоторые.
в html2pdf.class.php
на линиях 2132:
//FIX:
$ctop=$corr[$y][$x][2]<=count($sw)?$corr[$y][$x][2]:count($sw);
$s = 0; for ($i=0; $i<$ctop; $i++) {$s+= array_key_exists($x+$i, $sw)? $sw[$x+$i]:0;}
ИМЯ В строке 2138:
//FIX:
$ctop=$corr[$y][$x][2]<=count($sw)?$corr[$y][$x][2]:count($sw);
for ($i=0; $i<$ctop; $i++) {
проблема в массиве $sw не имеет ключа $corr [$ y] [$ x] [2], поэтому я исправляю цикл для max count ($ sw) для исправления. Я не знаю, создает ли это другое consecuense, но я разрешаю свою проблему. У вас больше нет ошибок.
Так что надеюсь работать тебе..!!! Beats Reguards