En typisk situation som vi ALTID skal tage stilling til, er hver gang vi skal udføre matematisk division. Det kan nemlig meget let gå galt, hvis vi ikke først lige undersøger om vi har 0 (nul) i nævneren (det er forbudt at dele med nul). Et overordnet råd er derfor ALTID kontrolle nævneren før du udfører division.
Et andet eksempel er i artiklen Tekstdokumenters titel (læs artiklen her: https://libreofficedk.blogspot.dk/2016/12/tekstdokumenters-titel.html ), hvor jeg lavede følgende meget simple program:
Sub TitelFraFelt
oMaster = thisComponent.getTextFieldMasters().getByName("com.sun.star.text.fieldmaster.User.Titel")
thisComponent.DocumentProperties.Title = oMaster.Content
End Sub
Der er umiddelbart to situationer som vi bør tage stilling til:
- Hvad nu hvis dokumentet ikke er et tekstdokument?
- Hvad nu hvis feltet "Titel" ikke eksisterer?
Denne lille rutine kontrollerer for om dokumentet er et tekstdokument:
If NOT ThisComponent.supportsService("com.sun.star.text.TextDocument") Then
MsgBox "Det aktuelle dokument er ikke et Writer tekstdokument", 48, "Fejl"
Exit Sub
End If
Det andet punkt kan vi løse vha. denne linje:
If thisComponent.getTextFieldMasters().hasByName("com.sun.star.text.fieldmaster.User.Titel") then
Makroen i artiklen kunne f.eks. se sådan ud:
Sub TitelFraFelt
rem Kontroller om det er et tekstdokument
If NOT ThisComponent.supportsService("com.sun.star.text.TextDocument") Then
MsgBox "Det aktuelle dokument er ikke et Writer tekstdokument", 48, "Fejl"
Exit Sub
End If
rem Kontroller om der findes et felt med navnet Titel
If thisComponent.getTextFieldMasters().hasByName("com.sun.star.text.fieldmaster.User.Titel") then
oMaster = thisComponent.getTextFieldMasters().getByName("com.sun.star.text.fieldmaster.User.Titel")
thisComponent.DocumentProperties.Title = oMaster.Content
Else
MsgBox "Feltet Titel findes ikke", 48, "Fejl"
End if
End Sub