Labels

Pressefreiheit (158) Wirtschaft (157) Österreich (126) IT (112) code (72) Staatsschulden (37) EZB (27) Geopolitik (17) Pensionssystem (16)

2025-09-12

Exception handling in C#, Java, C++

C#

In C# Exception is root of all exceptions extends base class System.Exception : ISerializable¹ and differs basically between System.SystemException and System.ApplicationException.
Of course, that are a lot of Exception derived directly from System.Exception.


ExternalException, Win32Exception, WebException, IOException, SocketException and all exceptions thrown during os system operations extend SystemException or it's children.

Java

In Java Throwable (root of all errors & exceptions) extends base class object. Error and Exception both extend from Throwable.

Errors such StackOverflowError (endless recursion), OutOfMemoryError (endless allocation) and VirtualMachineError are thrown, when critical limits of java virtual machine exceeded.

In java some exceptions like IOException or SocketException are "checked at compile time". This does NOT mean, that javac compiler knows when IOException or SocketExcpetion will be thrown at program flow at runtime. Furthermore javac compiler knows if reading from or writing to a file needs catching an IOExceptiuon, because disk might be full or USB stick could be unplugged or fs mount point is now unmounted or remounter ro. When reading from or writing to a socket javac compiler knows, that you must catch a SocketException in case of a linux system init runlevel 1 or 2, unplugging USB network adapter or dog bites CAT5 or CAT7 network cable.

C++

In C++ there is no binary split at the root of "exception tree" as in C# (System Exception &
ApplicationException) or in Java (Error & Exception both extend from Throwable).

In C++ bad_cast, bad_alloc, bad_function_call, logic_error & runtime_error extend from exception.
Most common Exceptions in C++ extend from logic_error & runtime_error.b.


2025-08-16

Josef Jandl

Ich habe einen guten alten Bekannten, nennen wir ihn Josef Jandl.

Josef war immer einer dieser Menschen, der viel quasselte, aber auch so einer der viele alternative Lösungswege für ein und dasselbe Problem sah.

Er hinterfrage auch immer besonders lästige und hemmende Anforderungen undund Prozessabläufe ganz genau.

Josef war immer der Meinung, dass er nicht so viel leistete und manchmal (aber eher selten) dachte meist nur 1 Manager von mehreren auch so.

Aber Josef half vielen anderen und mir auch sehr oft durch seine Art bei Projekten. Auch der beste Chef von allen, der nur ganz selten Hilfe vom Michael vom Regenbogen bei Schmähtandlerhypnotiseuren brauchte, meinte Josef sei ein halbes Genie, sein einziger Fehler sei manchmal seine fehlende Konsequenz unter Stress.

Nun ist es in letzter Zeit so, dass Josef nicht mehr mit dem selben Feuer und der kristallklaren lösungsorientierten Umsicht sich in Probleme hineintigert.

Er murrt statt dessen ganz selten, dass sich ein junger Vater schon wieder einen Pflegetag nahm.

Trotzdem ist Josef im Vergleich zum F-Wähler Gold und sehr sanftmütig und hilfsbereit.

Gleiches wie bei Josef merkte ich bei einer Gewissenskatze, die in ihrem Ausdruck, Wahrnehmung ehrlicher war als andere Katzen und frecher und auch viel fleißiger und weniger Vorurteile gegenüber Norm& Abweichungen hatte als andere Katzen und öfters ihrem Gewissen folgte und jemanden Besuchte um dessen / deren Anliegen zu verstehen, auch wenn es verpönt war.

Aber irgendwann schien diese Katze irgendwas sehr verletzt oder verängstigt zu haben und sie zeigte ähnliche Tendenzen wie Josef. Trotzdem ist diese 🐱 noch silbrig im Fell.

Ich frage mich, was Josef und die 🐱 so errschreckt, frustriert, bedroht, geängstigt oder ermürbt haben könnte.

Oft heißt es, dass frustrierte Abgehängte manchmal ihre Hochsprache mit der Zeit in eine sehr harte tiefe murrige Sprache ändern und immer mehr diese Murrgeräusche in der Sprachmelodie erscheinen / sich einschleichen.

Weder Josef noch die Katze 🐱 gehören aber zu den Ewiggestrigen oder zu den Abgehängten. Sie sind beide seit dem goldenen Millenium wirklich durchgehend in Arbeit und zumindest nicht unerfolgreich oder permanent frustriert und haben doch noch viel Freude an ihrer Arbeit.

Es ist allerdings nicht so, dass es alleine Josef und den Kater 🐱 beträfe.
Auch die Grün_innen, denen Christian Ortner von Zeit zur Zeit zu hohe Ideale und gutmenschliche Allüren vorwarf, bzw. sich über die zu helle idealistische Sprache der Grünen echauffierte, sind inzwischen ganz verstummt. 

Dafür scheint dieses Klima der FPÖ besonders zu nützen, auch in Niederösterreich gewinnen die von Wahl zur Wahl einen politischen Bezirk nach dem anderen. 


(Vergleich Europawahl Frühling 2024, Nationalratswahl Herbst 2024)



2025-08-09

Is there a way under windows to mount a in exe included disk image at runtime

[ Original question postetd at stackoverflow 
maybe you have an idea how that will work under Windows >= 7 or in any case >= 10

I want to generate an executable, where an disk image is added (linked at compile time) to the exe.

Under linux, it's possible to mount an image with a certain offset

  • mount

    mount -o loop,offset=$((1024 * 512 * 8)) image.raw /mnt

  • losetup

    losetup /dev/loop0 image.raw -o $((1024 * 512 * 8)) mount /dev/loop0 /mnt

  • I wrote a simple shell script, that demonstrates that with the efi boot partition added afterwards to a zero image with 8*512k blocks.

#!/usr/bin/bash
 
BLOCKSIZE=`echo '512  * 1024' | bc`
SEEK=8
OFFSET=$(echo "$BLOCKSIZE * $SEEK" | bc)
 
dd if=/dev/zero of=zero.img bs=512k count=8
cp zero.img offset_disk.img
dd if=/dev/nvme0n1p15 of=offset_disk.img bs=$BLOCKSIZE seek=$SEEK oflag=append
 
mkdir -p /mnt/efi
mount -o loop,offset=$OFFSET offset_disk.img /mnt/efi
du -h -s *.img ; df -h  | grep efi
 
sleep 1 ; umount /mnt/efi ; rm -f zero.img offset_disk.img
exit 0

Output of shell script -x (debug


The creation of the image file added to an executable would not be the problem, because I understand:

How to link a dll or dll embedded resource or image file to an executable with C++ linker

and also C# .Net crossgen2 to produce a big static exe, that needs no Framework anymore

The only problem I have, is how to mount disk / iso9660 image files with a certain offset.