# Exceptions

## Objective

To be able to use exceptions in programs.

## Task

For this exercise, you will write a function which calculates the roots
of a quadratic equation and returns them. Roots to equations are
given by the quadratic formula:

For equations $y = ax^2 + bx + c$,

${x = \frac{{ - b\ \pm \sqrt {b^2 - 4ac} }}{{2a}}}$

The function should return the two roots (which may possibly be the same)
in an array.

There are two exceptional situations that can occur:

- $a$ is zero, meaning the equation is not quadratic.
- the
*discriminant* which is the $b^2 - 4ac$ part is negative,
which means the quadratic has no real roots.

For both of these, you should throw IllegalArgumentException exceptions.

Your main function should read in a, b, and c from the user, then call
the root finding function in a try block. If there are any exceptions,
report them to the user.

Your main function should also keep prompting the user until they enter
valid doubles for a, b, and c.

## Example Run 1

```
Enter a, b, c:
```**hello**
For real put in a double!
**3 4 5**
There are no real roots!

## Example Run 2

```
Enter a, b, c:
```**0 9 1**
There are no real roots!

## Example Run 3

```
Enter a, b, c:
```**3 -4 -5**
Roots are 2.1196, and -0.7862.

## Submitting

When your program works, email the code to ifinlay@umw.edu.
Copyright © 2019 Ian Finlayson | Licensed under a Creative Commons Attribution 4.0 International License.