[QGIS-Developer] Catch Python exceptions in QGIS console
Jorge Gustavo Rocha
jgr at di.uminho.pt
Thu Jun 13 16:41:47 PDT 2019
Hi Nyall,
This problem only happens in Windows. In Linux, everything is running fine.
I was convinced that it was a Python exception, but for some reason, it
was not caught.
I will investigate this issue further. It makes me crazy!
Thank you for the feedback,
Jorge
Às 00:05 de 14/06/19, Nyall Dawson escreveu:
> On Fri, 14 Jun 2019 at 00:11, Jorge Gustavo Pereira Bastos Rocha
> <jgr at di.uminho.pt> wrote:
>>
>> Hi devs,
>>
>> Am I able to catch Python exceptions in Python console?
>
> Yes, definitely
>
>>
>> I'm trying to debug a DB Manager related issue [1] using pg_services. I have the following piece of code, that runs fine in my computer, but fails on any other computer, within a specific intranet.
>>
>> import psycopg2
>> print (psycopg2.__version__)
>> try:
>> connection = psycopg2.connect(service='pg_trabalho')
>> cursor = connection.cursor()
>> print ( connection.get_dsn_parameters(),"\n")
>> cursor.execute("SELECT version();")
>> record = cursor.fetchone()
>> print("Connected to - ", record,"\n")
>> except:
>> print( psycopg2.InterfaceError )
>> print( psycopg2.OperationalError )
>>
>> When I run it, QGIS crashes [2]. I would prefer to handle the exception myself. How can I catch the exception without crashing QGIS?
>
> This crash isn't caused by a Python exception -- it's something
> deeper. If it was just a Python exception you'd see exactly the same
> results as something like
>
> a = [1]
> print(a[2])
>
> Unfortunately, these kinds of crashes can be extremely difficult to
> diagnose (especially if they are only reproducible on Windows). If you
> can reproduce on Linux, I'd suggest running under valgrind and looking
> for clues.
>
> Nyall
>
J. Gustavo
--
Jorge Gustavo Rocha
Departamento de Informática
Universidade do Minho
4710-057 Braga
Tel: +351 253604480
Fax: +351 253604471
Móvel: +351 910333888
skype: nabocudnosor
More information about the QGIS-Developer
mailing list