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.
rik70
Master
Master
Messaggi: 1696
Iscritto il: gio mar 10, 2011 9:21
Slackware: 14.1
Kernel: 4.0.x-smp
Desktop: Xfce 4.12

Python: eccezioni.

Messaggioda rik70 » mar giu 03, 2014 15:13

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 2.6
Linux 2.6
Messaggi: 970
Iscritto il: gio nov 27, 2008 12:23
Slackware: 14 64bit
Desktop: kde4
Località: Rho
Contatta:

Re: Python: eccezioni.

Messaggioda lablinux » mer giu 04, 2014 15:59

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
Master
Master
Messaggi: 1696
Iscritto il: gio mar 10, 2011 9:21
Slackware: 14.1
Kernel: 4.0.x-smp
Desktop: Xfce 4.12

Re: Python: eccezioni.

Messaggioda rik70 » mer giu 04, 2014 17:18

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.


Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti