Technical exceptions are exceptions that are thrown by a computer program as a result of programmer mistakes and/or environmental issues such as there not being enough disk space.
But business rule exceptions are different. Business rule exceptions imply that such behavior is expected and is used to control program flow, when in fact, exceptions should be an exception to the normal flow of the program and not the expected output of a method.
For example, picture a person at an ATM drawing out £100 from their account that has £0 in it and does not have the ability to go overdrawn. The ATM accepts the user request to draw £100 out, and so it issues the Withdraw(100); command. The Withdraw method checks the balance, discovers that the account has insufficient funds, and so throws InsufficientFundsException().
You may think that having such exceptions is a good idea as they are explicit and help identify issues so that...