[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: TestError
[Thread Prev] | [Thread Next]
- Subject: Re: TestError
- From: Bruce Steers <bsteers4@xxxxxxxxx>
- Date: Tue, 11 Nov 2025 09:05:57 +0000
- To: Gambas Mailing List <user@xxxxxxxxxxxxxxxxxxxxxx>
I have just modified the wiki Error pages to better explain how Error.Text always gives the "last" error message but like all other Error.class properties does not get reset so they should not be tested to see if an error occurred. only the Boolean Error is for that. (it will be visible tomorrow if you are not logged in) Nb. The Boolean Error and Error.class are quite different things, meaning if Error is False it does not mean all the Error.class properties are null. Hope it all makes sense now :) BruceS On Tue, 11 Nov 2025 at 06:51, Bruce Steers <bsteers4@xxxxxxxxx> wrote: > Do you mean Error flag or Error.Text ? > Error should be false. > Try the following to test for a valid error. > > If Error Then Print Error.Text > > Error.Text may be filled but "Error" itself should be false after Return. > Do not test Error members like Error.Text or Error.Value just test Error > > Can you confirm that Error itself is not False like you say. > > > BruceS > > > > On Tue, 11 Nov 2025, 06:25 CD, <dessere.claude@xxxxxx> wrote: > >> Thank you for your reply. >> >> So, after rereading the documentation on error handling, >> >> I found the following at https://gambaswiki.org/wiki/lang/error: >> >> "The error flag is reset to FALSE when: >> >> The RETURN instruction is executed. >> >> A TRY instruction has been executed without any error." >> >> Therefore, if I understand correctly, in the procedure: >> >> Public Sub _GetRowHeight(iRow As Integer) As Integer >> >> Try Return $cHeight[iRow] >> >> Return _GetDefaultRowHeight() >> >> End >> >> the line `Try Return $cHeight[iRow]` generates an error, >> but the line `Return _GetDefaultRowHeight()` does not reset the error >> flag to false! >> >> This doesn't match the documentation! >> >> Personally, I will no longer test members of the `Error` class in the >> code without first using `Try`. >> But I'm still not entirely sure how error handling works in Gambas. >> Perhaps more examples and explanations would be helpful. >> >> >> Le lundi 10 novembre 2025 à 18:28 +0000, Bruce Steers a écrit : >> >> That is not how you check for errors. >> It should be done like this after a Try... >> >> If Error then >> Print Error.Text >> Endif >> >> After that Error.Text is not reset to null, it will always display the >> last error text. >> >> So randomly checking Error.Text or Error.Value at some time in your code >> will just show the last error msg/value. >> >> An Error is not something that always throws an exception. >> >> Eg.. >> Try File.Load(sPath) >> If Error Then >> Print Error.Text >> Endif >> >> Error text is filled in but there was no exception to halt the program. >> >> So the only error in your form is how you are using Error.class >> The error you are displaying is from this code in _GridView_Rows.class >> >> https://gitlab.com/gambas/gambas/-/blob/master/comp/src/gb.gui.base/.src/GridView/_GridView_Rows.class?ref_type=heads >> >> Public Sub _GetRowHeight(iRow As Integer) As Integer Try Return $cHeight[iRow] Return _GetDefaultRowHeight() End >> >> It attempts >> Try Return $cHeight[iRow] >> if that fails it returns _GetDefaultRowHeight() >> >> Respects >> BruceS >> >> >> On Mon, 10 Nov 2025 at 15:47, CD <dessere.claude@xxxxxx> wrote: >> >> Hello, >> >> I have an application with a main form >> from which I launch another form in ShowModal mode. >> >> After this form is submitted, I test the Error class which returns: >> >> Print Error.Class -> (Class 0x590273648788) >> Print Error.Code -> 6 >> Print Error.Text -> Type mismatch: wanted Integer, got Null instead >> Print Error.Where -> [gb.gui.base]._GridView_Rows._GetRowHeight.161 >> >> I reproduced the issue with a Test application . >> >> What about the error coming from >> [gb.gui.base]._GridView_Rows._GetRowHeight.161 ? >> >> Project attached >> >> Regards >> >> >> >> >> [System] >> Gambas=3.21.0 7f84523 (master) >> OperatingSystem=Linux >> Distribution=Ubuntu 24.04.3 LTS (Noble Numbat) >> Kernel=6.8.0-86-generic >> Architecture=x86_64 >> Cores=8 >> Memory=7817M >> Language=fr_FR.UTF-8 >> Platform=x11 >> Desktop=MATE >> DesktopResolution=96 >> DesktopScale=9 >> WidgetTheme=blackmate >> Font=Ubuntu Mono,13 >> DarkTheme=True >> [Programs] >> dpkg=Programme « dpkg » de gestion de paquets Debian version 1.22.6 >> (amd64). >> gcc=gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 >> git=git version 2.43.0 >> msgmerge=msgmerge (GNU gettext-tools) 0.21 >> rpmbuild=RPM version 4.18.2 >> [Libraries] >> Cairo=libcairo.so.2.11800.0 >> Curl=libcurl.so.4.8.0 >> DBus=libdbus-1.so.3.32.4 >> GDK2=libgdk-x11-2.0.so.0.2400.33 >> GDK3=libgdk-3.so.0.2409.32 >> GStreamer=libgstreamer-1.0.so.0.2402.0 >> GTK+2=libgtk-x11-2.0.so.0.2400.33 >> GTK+3=libgtk-3.so.0.2409.32 >> OpenGL=libGL.so.1.7.0 >> Poppler=libpoppler.so.134.0.0 >> Poppler=libpoppler.so.73.0.0 >> QT5=libQt5Core.so.5.15.13 >> QT6=libQt6Core.so.6.4.2 >> RSvg=librsvg-2.so.2.50.0 >> SDL=libSDL2-2.0.so.0.3000.0 >> SQLite3=libsqlite3.so.0.8.6 >> [Environment] >> COMPIZ_CONFIG_PROFILE=mate >> DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus >> DEBUGINFOD_URLS=https://debuginfod.ubuntu.com >> DEFAULTS_PATH=/usr/share/gconf/mate.default.path >> DESKTOP_SESSION=mate >> DISPLAY=:0 >> GB_GUI=gb.gtk3 >> GDMSESSION=mate >> GDM_LANG=fr_FR >> GIO_LAUNCHED_DESKTOP_FILE=<home>/Bureau/gambas3.desktop >> GIO_LAUNCHED_DESKTOP_FILE_PID=183671 >> GNOME_KEYRING_CONTROL=/run/user/1000/keyring >> GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1 >> GTK3_MODULES=xapp-gtk3-module >> GTK_MODULES=appmenu-gtk-module:gail:atk-bridge:canberra-gtk-module >> GTK_OVERLAY_SCROLLING=0 >> HOME=<home> >> INSIDE_CAJA_PYTHON= >> LANG=fr_FR.UTF-8 >> LANGUAGE=fr_FR.UTF-8 >> LC_ADDRESS=fr_FR.UTF-8 >> LC_IDENTIFICATION=fr_FR.UTF-8 >> LC_MEASUREMENT=fr_FR.UTF-8 >> LC_MONETARY=fr_FR.UTF-8 >> LC_NAME=fr_FR.UTF-8 >> LC_NUMERIC=fr_FR.UTF-8 >> LC_PAPER=fr_FR.UTF-8 >> LC_TELEPHONE=fr_FR.UTF-8 >> LC_TIME=fr_FR.UTF-8 >> LOGNAME=<user> >> MANDATORY_PATH=/usr/share/gconf/mate.mandatory.path >> MATE_DESKTOP_SESSION_ID=this-is-deprecated >> PAPERSIZE=a4 >> >> PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin >> PWD=<home> >> QT_ACCESSIBILITY=1 >> QT_FONT_DPI=96 >> QT_LOGGING_RULES=*.debug=false >> QT_QPA_PLATFORMTHEME=gtk2 >> QT_SCALE_FACTOR=1 >> >> SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/2550,unix/<hostname>:/tmp/.ICE-unix/2550 >> SHELL=/bin/bash >> SHLVL=0 >> SSH_AUTH_SOCK=/run/user/1000/keyring/ssh >> TZ=:/etc/localtime >> UBUNTU_MENUPROXY=1 >> USER=<user> >> XAUTHORITY=<home>/.Xauthority >> XDG_CONFIG_DIRS=/etc/xdg/xdg-mate:/etc/xdg >> XDG_CURRENT_DESKTOP=MATE >> >> XDG_DATA_DIRS=/usr/share/mate:/usr/share/mate:/usr/share/gnome:/usr/local/share:/usr/share:/var/lib/snapd/desktop >> XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/<user> >> XDG_RUNTIME_DIR=/run/user/1000 >> XDG_SEAT=seat0 >> XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 >> XDG_SESSION_CLASS=user >> XDG_SESSION_DESKTOP=mate >> XDG_SESSION_ID=c1 >> XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0 >> XDG_SESSION_TYPE=x11 >> XDG_VTNR=7 >> >> >>
| Re: TestError | BB <adamnt42@xxxxxxxxx> |
| Re: TestError | CD <dessere.claude@xxxxxx> |
| TestError | CD <dessere.claude@xxxxxx> |
| Re: TestError | Bruce Steers <bsteers4@xxxxxxxxx> |
| Re: TestError | CD <dessere.claude@xxxxxx> |
| Re: TestError | Bruce Steers <bsteers4@xxxxxxxxx> |