Надеюсь что вы придете на светлую сторону чистого кода.
А решение без исключений будет выглядеть как-то так.
function add_deport($val) {
$expected = array(
'link' => '',
'type' => '',
'reason' => ''
);
extract(array_merge($expected, $val));
$time = time();
$db = db();
$user_id = get_userid();
$link = sanitizeText($link);
$type = sanitizeText($type);
$reason = sanitizeText($reason);
$credit = get_creditgift_balance($user_id); // отображает баланс пользователя
$balance = $credit[0]['credit_balance'];
$amount = 10; // сума транзакции
if ($amount < $balance) {
$new_balance = $balance - $amount;
$db->query("UPDATE users SET credit_balance='$new_balance' WHERE id='$user_id'");
$db->query("INSERT INTO deports (user_id, type, link, message, time) VALUES('" . $user_id . "', '" . $type . "', '" . $link . "', '" . $reason . "', '" . $time . "')");
fire_hook('deport.added', null, array($val));
if (has_deported($link, $user_id)) {
return true;
}
}
return false;
}