Python: eccezioni.

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Python: eccezioni.

Messaggio da rik70 »

Ciao di nuovo a tutti, come butta?

Sto provando a scrivere un programma in python - per la precisione un plugin per XBMC - e volevo chiedervi un consiglio.

In pratica vorrei fare in modo che il programma ad un certo punto s'interrompa se si verifica una data eccezione. Qual'è il modo migliore per farlo? Io mi stavo buttando sulla funzione sys.exit()

Es:

Codice: Seleziona tutto

import sys
import urllib
import urllib2

try:
    link = 'http://indirizzo_web_inesistente/'
    req = urllib2.Request(link)
    req.add_header('User-agent', 'Mozilla/5.0')
    response = urllib2.urlopen(req)
    url = response.read()
    response.close()
except:
    print "Errore, bla bla bla"
    sys.exit(0)

# altro codice
Son sicuro che è sbagliato, giusto?


Grazie in anticipo.

Ciao

P.s.
Tenete presente che parlate con un totale neofita.

Avatar utente
lablinux
Linux 4.x
Linux 4.x
Messaggi: 1212
Iscritto il: gio 27 nov 2008, 12:23
Desktop: Gnome
Distribuzione: Debian testing
Località: Rho

Re: Python: eccezioni.

Messaggio da lablinux »

cosi ad occhio e croce va bene per uno script bash, magari eviterei di restituire 0, che indica al sistema tutto ok.
Ma non so come funzionanao gli plugin per xbmc, ti conviene chiedere in un forum specializzato in xbmc o trovare qualche plugin per fare copia&incolla

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Python: eccezioni.

Messaggio da rik70 »

lablinux ha scritto:cosi ad occhio e croce va bene per uno script bash
Avevo lo stesso dubbio e hai colto nel segno.

Ho verificato infatti che anggiungendo 'print url' al codice - subito dopo il commento finale - ed eseguendolo sull'interprete python, restituisce l'errore:
`NameError: name 'url' is not defined`.

Invece incollandolo su un file 'test.py' e lanciandolo da shell con `python test.py`, 'esce' senza errori con questo output:
`Errore, bla bla bla`.

Su XBMC invece pare funzionare, o meglio: non viene notificato il popup dell'errore dello script, anche se il log di xbmc riporta:

Codice: Seleziona tutto

-->Python Interpreter Initialized<--
17:03:41 T:3034634032   ERROR: GetDirectory - Error getting plugin://plugin.video.test/
17:03:41 T:3034634032   ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.test/) failed
Vabbè, proverò a sbirciare il codice altrui, anche perché mi sa che è così che s'impara, giusto? :)

Graze, ciao.

Rispondi