aboutsummaryrefslogtreecommitdiff
path: root/notes/crash_error_types.txt
blob: bd952f1451a82492c79394abcb155fabbf7ebffa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

Types of crashes/errors
=======================

These are easy to catch at compile time, and will definitely be catch in
SLUL:

* Memory corruption
* Null pointer
* Uninitialized value

These are hard to catch at compile time, and generally not caught by safe
languages:

* Stack overflow
* Out of memory
* Non-termination
* Value errors:
    - Integer range error
    - Index out of bounds
    - "Semantic type confusion"
        - For example, if you have a list of "Red","Green","Blue"
          and you put "Long" inside it, you might have semantic
          type confusion.
    - Paired value mismatch
        - For example, taking x and y coordinates from different
          `Point` objects.
    - Unsanitized data
    - Temporally wrong state
        - The object state could be correct at some other point in time,
          but isn't correct now.
    - Structurally wrong state
        - The object should never be in this state.