Seite 1 von 1

Delete exception handling ?

Verfasst: Freitag 25. Juni 2010, 08:40
von Hubi
Hi @all

Weiss jemand welche Exceptionart ich hier abfangen muss (sollte) ?

Falls "i.Delete()" fehlschlägt ?

Code: Alles auswählen

usrnbr=5135 Logon='TG56' fullName='XXXX'

to = acm.FWorkbook.Select('')
for i in to:
    if i.Owner().Name() in ['TG56']:
        print i.Owner().Name(), 'Workbook: ', i.Name()      
        zaehler = zaehler + 1
        if i.Name() in ['DH_MySOnlineDefaultWorkbook_1',
                        'DH_MySOnlineDefaultWorkbook_10',
			'DH_MySOnlineDefaultWorkbook_11',
			'DH_MySOnlineDefaultWorkbook_12',
			'DH_MySOnlineDefaultWorkbook_13',
			'DH_MySOnlineDefaultWorkbook_14',
			'DH_MySOnlineDefaultWorkbook_2',
			'DH_MySOnlineDefaultWorkbook_3',
			'DH_MySOnlineDefaultWorkbook_4',
			'DH_MySOnlineDefaultWorkbook_5',
			'DH_MySOnlineDefaultWorkbook_6',
			'DH_MySOnlineDefaultWorkbook_7',
			'DH_MySOnlineDefaultWorkbook_8',
			'DH_MySOnlineDefaultWorkbook_9']:
            if debug == 0: 
                print 'Workbook Name: ',i.Name()      
                print 'User: ',i.Owner()
                print 'Sheets in Workbook: ',i.Sheets()
                i.Delete()
                deleted = deleted + 1
                print 'gelöscht'
print '****** END ****** Zaehler: ', zaehler, ' geloescht: ', deleted  

Re: Delete exception handling ?

Verfasst: Freitag 25. Juni 2010, 09:10
von BlackJack
@Hubi: Na am besten die, die auch ausgelöst wird. Mal ehrlich woher soll dass denn jemand wissen ohne die Typen zu kennen, mit denen Du da arbeitest!? Steht nichts in der Dokumentation? Probier doch einfach mal aus was für eine Ausnahme Du bekommst, wenn Du etwas nicht-vorhandenes Löschen willst.

`i` ist ein schlechter Name um daran in einer Schleife etwas anderes zu binden als ganze Zahlen. Das erwarten Programmierer nämlich in aller Regel nicht. Ist ausserdem nicht sehr aussagekräftig der Name.

Die Bedingungen sind beide etwas komisch formuliert. ``in`` um gegen *ein* Element in einer Liste zu prüfen? Und das zweite lässt sich sicher etwas intelligenter ohne die Liste mit den vielen fast identischen Zeichenketten prüfen.