Utilizzo degli operatori di controllo degli errori per consentire a try catch di gestire gli errori

0

Ci sono alcune funzioni in php che generano errori quando falliscono, come ftp_login . Se ho questo codice.

try {
    $result = ftp_login($conn_id, $ftp_user_name, 'incorrectPassword');
    if (!$result) {
        throw new Exception('Could not login.');
    }
} catch (Exception $e) {
    echo $e->getMessage() . ' - ' . error_get_last();
}

Non catturerà a causa dell'errore. È appropriato in questo caso utilizzare un operatore di controllo degli errori in questo modo?

try {
    $result = @ftp_login($conn_id, $ftp_user_name, 'incorrectPassword');
    if (!$result) {
        throw new Exception('Could not login.');
    }
} catch (Exception $e) {
    echo $e->getMessage() . ' - ' . error_get_last();
}

Questo mi consente di reagire all'errore, tuttavia sopprime gli errori e sarebbe un grande successo nelle prestazioni. Come posso giudicare qual è l'approccio giusto, e ci sono altre alternative che non sto considerando?

    
posta Goose 21.09.2016 - 16:50
fonte

1 risposta

1

Registra il tuo gestore errori con set_error_handler . All'interno di tale gestore di errori, lancia l'eccezione.

Se ora ftp_open genera un errore, l'eccezione dal gestore di errori personalizzato si comporta come se ftp_open la gettasse.

    
risposta data 21.09.2016 - 18:18
fonte

Leggi altre domande sui tag