Крім того, що визначена виняткова ситуація може бути порушена виконуючою системою Java, програміст сам може явно породити помилку. Робиться це за допомогою оператора throw. Наприклад:
...public int calculate(int theValue) { if( theValue < 0) { throw new Exception( "Параметр для обчислення не повинен бути негативним"); }}...
У цьому випадку передбачається, що як параметр методу може бути передане тільки позитивне значення; якщо ця умова не виконана, то за допомогою оператора throw породжується виняткова ситуація.
Метод повинен делегувати обробку виняткової ситуації його коду, що викликав. Для цього в сигнатурі методу застосовується ключове слово throws, після якого повинні бути перераховані через кому всі виняткові ситуації, які може викликати даний метод. Таким чином, створення виняткової ситуації в програмі виконується за допомогою оператора throw з аргументом, значення якого може бути наведене до типу Throwable.
У деяких випадках після обробки виняткової ситуації може виникнути необхідність передати інформацію про неї в поточний код.

Рисунок 6.1 – Ієрархія класів стандартних виключень