Delete exception handling ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Hubi
User
Beiträge: 17
Registriert: Mittwoch 17. Juni 2009, 10:58

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  
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.
Antworten