Исключения

Discussion in 'Разработка плагинов' started by Tee7even, 27/3/16.

  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
We welcome you on our site. This site is devoted to the Nukkit project and all that is connected with him. Here you can communicate, download plugins, also many other things get acquainted! Register the account right now :3
  1. Tee7even

    Tee7even Nukkit Coders Team

    Messages:
    123
    Likes Received:
    27
    Вопрос будет не о разработке плагинов конкретно под Nukkit или на Java, а скорее о принципах ООП. Поскольку на Nukkit я решил ещё не переходить (до версии 1.0 эдак), то пример будет на PHP, для PM.
    Вот имеется у меня следующий код:
    PHP:
    public function setPrivateZoneOwner(string $zoneNamestring $playerName)
    {
    $prepare $this->database->prepare("UPDATE PrivateZones SET owner = :owner WHERE name = :name");
    if(!
    $prepare)
    {
    throw new 
    DatabaseException($this->database->lastErrorMsg());
    }

    [
    pre][code]$prepare->bindValue(":name", \SQLite3::escapeString($zoneName), SQLITE3_TEXT);
    $prepare->bindValue(":owner", \SQLite3::escapeString($playerName), SQLITE3_TEXT);

    if(!
    $prepare->execute())
    {
        throw new 
    DatabaseException($this->database->lastErrorMsg());
    }
    [/pre]
    }[/code]
    Тут можно видеть, что на каждый метод, который может возвращать false вместо результата (1, 2), стоит проверка и выбрасывается исключение, если дело обстоит не так, как нам надо. Таким образом может образовываться по несколько штук таких проверок в одном методе. Внимание, вопрос: это нормально или можно придумать что-либо поэлегантнее? Авось специфика PHP, в котором методы возвращают false? :confused:
     
  2. fromgate

    fromgate Administrator

    Messages:
    664
    Likes Received:
    186
    Я почти вообще ничего не знаю о php... ;)

    Но в ситуации с использованием Exception'ов ничего исключительного не вижу. Это нормально и удобно. Т.е. в Java тоже они часто используются.

    В принципе, если не нужно обрабатывать какие-то конкретные ситуаций, то думаю можно вполне обойтись возвратом функцей false вместо этих исключеий. Главное чтобы при обращении к этой функции, учитывалось, что она может вернуть "false".
     
  3. Tee7even

    Tee7even Nukkit Coders Team

    Messages:
    123
    Likes Received:
    27
    Я о том, что проверок, выбрасывающих исключения, в одном методе может набраться несколько штук. Но я разобрался уже, это скорее беда PHP, где каждый второй метод может вернуть что ему вздумается вместо результата, чем ознаменует ошибку.
     

Share This Page