Small Basic: Error Handling
This article focuses to explain about error handling in Microsoft Small Basic programming language.
No Keywords
Old BASIC languages have error handling functions such as ON ERROR GOTO statement. But Small Basic language doesn't have such keywords.
Error Handling
In Small Basic, File object has functions to handling errors. Following sample shows two points of file error handling. One is to get results of File operations. This sample code gets a result of File.WriteContents
operation in OnButtonClicked
subroutine. The other is to check File.LastError
property. This sample shows the last error if the result is "FAILED"
in FileHelper_ShowError
subroutine.
' Small Memo
' Version 0.1
' Copyright © 2019 Nonki Takahashi. The MIT License.
' Program ID HQM389
GraphicsWindow.Title = "Small Memo v0.1"
Init()
Sub Init
size = 300
GraphicsWindow.Width = size
GraphicsWindow.Height = size
GraphicsWindow.BackgroundColor = "#FFFF66"
GraphicsWindow.BrushColor = "Black"
GraphicsWindow.FontBold = "False"
GraphicsWindow.FontName = "Arial"
fs = 30
GraphicsWindow.FontSize = fs
Controls.AddButton("Save and Close", size - fs * 7.4, 0)
tbox = Controls.AddMultiLineTextBox(0, fs * 1.5)
Controls.SetSize(tbox, size, size - fs * 1.5)
Shapes.SetOpacity(tbox, 60)
path = Program.Directory + "\memo.txt"
buf = File.ReadContents(path)
Controls.SetTextBoxText(tbox, buf)
Controls.ButtonClicked = OnButtonClicked
op = ""
dirs = ""
files = ""
indent = ""
EndSub
Sub OnButtonClicked
buf = Controls.GetTextBoxText(tbox)
result = File.WriteContents(path, buf)
File_CheckResult()
If result = "FAILED" Then
TextWindow.Pause()
EndIf
Program.End()
EndSub
Sub File_CheckResult
' File | check File operation result
' param result, dirs or files - result of a File operation
' param op - name of File operation
If (op = "GetDirectories") And (dirs = "FAILED") Then
FileHelper_ShowError()
ElseIf (op = "GetFiles") And (files = "FAILED") Then
FileHelper_ShowError()
ElseIf result = "FAILED" Then
FileHelper_ShowError()
EndIf
EndSub
Sub FileHelper_ShowError
' File Helper | show last errer
' param op - oparation name
' param indent - indent space if needed
TextWindow.ForegroundColor = "Yellow"
TextWindow.WriteLine(indent + op + ":FAILED")
TextWindow.WriteLine(indent + "LastError:" + File.LastError)
TextWindow.ForegroundColor = "Gray"
EndSub
Usually this sample doesn't show error. But after changing read-only attribute of the output file as below, an error will be shown.
The error will be show like below.
This kind of error handling (or error logging) will be helpful to know what exactly happened in the program.
Errors Can' t Be Handled
There are a lot of other errors that can not be handled from Small Basic program such as syntax error, runtime error, and so on. See more detail about these errors here.
See Also
Additional Resources
- Small Basic File Exists Subroutine (GitHub Gist) - sample snippet of file error handling