обработка исключений — несколько попыток поймать php базу данных

Так что я пытаюсь сделать одну попытку поймать на одной странице. Причина в том, что сервер, на котором я выполняю свой код, не похоже на несколько попыток перехвата. Поэтому мне было интересно, что именно я должен вставить в свой код, чтобы перехватывать ошибки соединения с базой данных, а также ошибки запросов. Мой код немного длинный для этой страницы, поэтому я постарался сократить его как можно больше, и у меня все еще есть все попытки. Страница ошибок работает отлично. Я чувствую, что моя единственная проблема заключается в размещении уловов

Это то, что у меня так далеко …

try{

$db = @mysqli_connect('xxxx', 'xxxx', 'xxxx', 'xxxx');

if(!$db){
throw new aException(mysqli_connect_error());
}

$strSQL = "SELECT * FROM blah blah blah";
$result = mysqli_query($db, $strSQL);
if(!$result){
throw new bException(mysqli_error($db));
}

$row = mysqli_fetch_array($result);

echo '<select name="customer">';
$custSQL = "select blah blah blah";
$rs=mysqli_query($db,$custSQL);
if(!$rs){
throw new cException(mysqli_error($db));
}
while($row=mysqli_fetch_array($rs)){

if($row['cust_id'] == $customer){

echo '<option selected="selected" value="'.$row[2].'">'.$row['cust_fname']. " " .$row['cust_lname'].'</option>';
}
else{
echo '<option value="'.$row[2].'">'.$row['cust_fname']. " " .$row['cust_lname'].'</option>';
}

}

mysqli_close($db);
unset($db);

}catch(aException $e){

header("Location: error.php?msg=" . $e->getMessage() . "&line=" . $e->getLine());
}
catch(bException $e){

header("Location: error.php?msg=" . $e->getMessage() . "&line=" . $e->getLine());
}
catch(cException $e){

header("Location: error.php?msg=" . $e->getMessage() . "&line=" . $e->getLine());
}

0

Решение

Вы можете использовать интерфейс при создании исключений.

interface myExceptionInterface{}

class aException extends \Exception implements myExceptionInterface {}
class bException extends \Exception implements myExceptionInterface {}
class cException extends \Exception implements myExceptionInterface {}

И поймать его с помощью этого интерфейса.

try{
throw new bException;
}catch(myExceptionInterface $e){
header("Location: error.php?msg=" . $e->getMessage() . "&line=" . $e->getLine());
}

Постскриптум бросать и ловить исключения в одной и той же области запахов.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]