Как условно бросить исключение в сжатой форме? - PullRequest
0 голосов
/ 07 декабря 2010

Мне нужно сгенерировать исключение, если утверждение возвращает false, и я пытаюсь найти простой и лаконичный способ сделать это.Есть идеи?Я хотел сделать следующее ...

<?
  // ...
  oci_execute( $stmt ) or throw new OracleException( $stmt );
  // ...
?>

... но интерпретатор PHP не позволит мне сделать это (синтаксическая ошибка), потому что throw - это языковая конструкция.

Есть идеи?Я хотел бы очень короткую строку (нет, если заявления, пожалуйста)

Ответы [ 3 ]

3 голосов
/ 07 декабря 2010
<?
  // ...
  if (!oci_execute( $stmt )) throw new OracleException( $stmt );
  // ...
?>

- это все, что приходит мне в голову.Но я использовал PHP не слишком долго.Теперь я обнаружил Perl, и это здорово, и вы можете использовать предложенную вами конструкцию и многое другое.Всегда стоит попробовать!

0 голосов
/ 07 декабря 2010

Будет ли

if !oci_execute($stmt) { throw new OracleException($stmt); }

работать?

0 голосов
/ 07 декабря 2010

Вы не можете. Однако у меня никогда не было той конкретной потребности, которую вы описываете, что заставляет меня подозревать, что вы делаете что-то немного странное. Или, по крайней мере, не идиоматические. Наличие процедурной функции (oci_execute), кажется, подтверждает это.

У меня нет опыта работы с Oracle из php, но не могли бы вы вместо этого использовать pdo-bindings ? Это даст вам более объектно-ориентированный интерфейс для работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...