What exceptions to use for what
NOTE: There will be custom Excpetions creaed and so some rules will change
NOTE: For catching: always catch \Exception at the end to avoid missing some changed exceptions
NOTE: Changed exceptions will have marked as critical API change
if there is nothing else matching, use this one
if argument to a function is not expected type
If the value is not matching to what we expect
Given value is out of range
Missing php modules or external programs
Not in range of given expression (array or other)
If we have dynamic argument methods and we are missing a certain arguemnt count
Invalid type