2016-09-23 6 views
0

Сегодня у меня возникла проблема с нижней базой данных при запуске запрограммированного скрипта. Я хотел бы создать исключение, когда это снова вернется, чтобы отправить мне электронное письмо (я уже создаю функцию для этого). Но я не могу создать для него исключение.Python: создать исключение для отказавшего соединения базы данных с pymysql

import pymysql.cursors 

    #Conection Settings.... 

    try: 

     with connection.cursor() as cursor: 
      # Read a single record 
      sql = "select count(*) as total_invoices, " \ 
        "sum(e.Montant_vente - e.Montant_tva_recup) as total_amount " \ 
        "from extrait_sapeig_stat e " \ 
        "where e.montant_vente != 0 " \ 
        "and e.numero_client = 1086 " \ 
        "and e.activite != 11 " \ 
        "and e.invoice_date = date_add(curdate(), Interval -1 DAY) " \ 
        "and right(e.Numero_facture,7) not in (1182499) " \ 


      print(sql) 
      cursor.execute(sql) 
      inv_counts_2 = cursor.fetchall() 


    finally: 
     connection.close() 
+0

Вам нужно поймать 'OperationalError'. И поставьте свою логику там – sisanared

ответ

0

Потому что вы не указали исключение.

import pymysql.cursors 

    #Connection Settings.... 

    try: 

     with connection.cursor() as cursor: 
      # Read a single record 
      sql = "select count(*) as total_invoices, " \ 
        "sum(e.Montant_vente - e.Montant_tva_recup) as total_amount " \ 
        "from extrait_sapeig_stat e " \ 
        "where e.montant_vente != 0 " \ 
        "and e.numero_client = 1086 " \ 
        "and e.activite != 11 " \ 
        "and e.invoice_date = date_add(curdate(), Interval -1 DAY) " \ 
        "and right(e.Numero_facture,7) not in (1182499) " \ 


      print(sql) 
      cursor.execute(sql) 
      inv_counts_2 = cursor.fetchall() 
    except Exception as e: 
     print (e) 

    finally: 
     connection.close()