[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: TestError
[Thread Prev] | [Thread Next]
- Subject: Re: TestError
- From: CD <dessere.claude@xxxxxx>
- Date: Tue, 11 Nov 2025 07:25:08 +0100
- To: user@xxxxxxxxxxxxxxxxxxxxxx
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/sh > > are:/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 | Bruce Steers <bsteers4@xxxxxxxxx> |
| TestError | CD <dessere.claude@xxxxxx> |
| Re: TestError | Bruce Steers <bsteers4@xxxxxxxxx> |