Php ловить исключение - PullRequest
       17

Php ловить исключение

2 голосов
/ 26 апреля 2011

Я пытаюсь поймать ошибку

        try     
        {
            $outcome            =   $bet->getElementsByTagName("Outcome");
            $line1              =   $outcome->item(0)->getElementsByTagName("OptionalValue1")->item(0)->nodeValue;                      
            $line2              =   $outcome->item(2)->getElementsByTagName("OptionalValue1")->item(0)->nodeValue;
            $aOdds["line"]      =   ($line1 == 0) ? -$line2 : $line1;

            $aOdds["q1"]        =   $outcome->item(0)->getAttribute("odds"); 
            $aOdds["qx"]        =   $outcome->item(1)->getAttribute("odds"); 
            $aOdds["q2"]        =   $outcome->item(2)->getAttribute("odds");
        }
        catch (Exception $e)
        {
            $outcome            =   $bet->getElementsByTagName("Outcome");
            $line1              =   $outcome->item(0)->getElementsByTagName("OptionalValue1")->item(0)->nodeValue;                      
            $line2              =   $outcome->item(1)->getElementsByTagName("OptionalValue1")->item(0)->nodeValue;
            $aOdds["line"]      =   ($line1 == 0) ? -$line2 : $line1;

            $aOdds["q1"]        =   $outcome->item(0)->getAttribute("odds"); 
            $aOdds["qx"]        =   0; 
            $aOdds["q2"]        =   $outcome->item(1)->getAttribute("odds");
        }

Некоторые данные имеют 2 одинаковых тега, а другие - 3, и я хочу перехватить их, если тега 3. не существует, но перехват ошибок не работает.

Ответы [ 3 ]

1 голос
/ 26 апреля 2011

Вы должны прочитать немного больше о концепции исключений.Вот несколько ссылок, которые могут оказаться полезными:

http://www.w3schools.com/php/php_exception.asp

http://ciaweb.net/pear-exception-use-guidelines.html

http://php.net/manual/en/language.exceptions.php

1 голос
/ 26 апреля 2011

Вы можете выдать свое собственное исключение в блоке попытки

if (some condition) {
  throw new Exception("Error message");
}
0 голосов
/ 26 апреля 2011

Вы уверены, что в коде блока try ошибка вызовет исключение?Попытка statment может поймать исключение, которое выдается этим php-кодом:

throw new Exception('exception raised');

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

...