and exceptions

When an error - an error - occurs in a program, a message is output. There are different types of errors. Some occur during compiling, the conversion of a programming language script into machine code. Others only appear during the running time of a program. There are different error messages, so-called exceptions, in the different programming languages for errors that occur. If an error causes an error message, the error is said to have raised an exception. The resulting error message must be edited to get a working script. Such a process is called error handling. The next steps after the error message occurs are described. This is then called catching the exception.
Error messages can also be defined and triggered manually. An error message is not available in every programming language for every eventuality. For example, if it is a very specific problem, you can define your own error message and certain parameters as to when a corresponding error message should be triggered. For example, if a basic assumption of the code is not met, or rare, exceptional events occur, the programming language or development environment (IDE) does not necessarily recognize this as an error. It is good practice to declare these special cases as errors by raising an exception for them. This makes it much easier to quickly and accurately determine the location of the error in the code.
Error handling is not just about fixing known errors. Rather, it is about the ability to anticipate. There are many different solutions to a problem, which can look different depending on the programming language and style of the programmer. It is clearly defined which requirements the finished program should meet. It is therefore necessary to be aware in advance of certain errors that could arise on the way to achieving your goal. And even more important: you have to clearly identify these mistakes and deal with them.


In certain programming languages, objects can be assigned to a so-called type. A simple example is data types. The Integer data type stores integer values in a finite range of values. The String data type is a character string, i.e. a sequence of characters of finite length. The number 4 could have the data type Integer and the sentence “Hello world!” the data type String.
Various operations can be applied to objects. Operations are, for example, simple arithmetic operations such as +, – or *. A TypeError occurs when an attempt is made to apply an operation to an object of a certain type to which the operation cannot be applied. This happens, for example, if you try to divide a string by another string in the Python programming language.
If you look at the object as a real object, the operation as a building function or use and the type as a building typology, similar situations can arise. If an intended use does not correspond to the building typology, or if it deviates from our expectations, we perceive this as a TypeError.


Every object we own takes up space. If you only have limited space available, objects that are no longer used are thrown away. This is also how modern programming languages operate. If there is no longer a reference to an object, it is discarded. If an attempt is now made to refer to the object, a ReferenceError is issued.
Of course, there are other reasons to get rid of various objects. Things always become difficult when the removed object is needed again in a different context or you try to refer to it again.
Objects in public space, buildings, or even uses and practices, never exist as isolated units. You are part of a network. If a node in the network is removed, a new connection can be created, or the open connections that have been created can lead to a dead end.
Depending on the quality and quantity of the new connections, the resulting node can densify the urban network, strengthen it or weaken it.
If uses are left without a designated location, they shift or dissolve. This can have unforeseen effects on other connections in the network.
Places that are left unused are perceived as artifacts. They can be integrated back into the network through new uses. An example of this is the conversion of old factory or industrial buildings.
Statues or objects that are dismantled or rebuilt in a new location can also be perceived as a ReferenceError. There is often no connection to the location they originally intended. In the case of the Aphrodite statue in Linz's Bauernberg Park, an object was removed, but its surroundings - a pavilion and a base - were retained. The empty base triggers an attitude of expectation, but also irritation due to the obvious absence of an object - a kind of phantom pain. This was addressed through various refurbishment activities and the placement of a plaque with information about the statue.