mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.7 KiB
57 lines
1.7 KiB
1 year ago
|
## AdventureCatch
|
||
|
|
||
|
### Instructions
|
||
|
|
||
|
Now, we will throw and catch some exceptions.
|
||
|
|
||
|
For the methods `attack`, `takeDamage` and `heal`, if the character is already dead, you must throw a `DeadCharacterException`. Do this for all the `Character` subclasses.
|
||
|
|
||
|
The `fight` method should not throw an exception, so you will need to catch the exception in this method.
|
||
|
|
||
|
### Usage
|
||
|
|
||
|
Here is a possible ExerciseRunner.java to test your function :
|
||
|
|
||
|
```java
|
||
|
public class ExerciseRunner {
|
||
|
|
||
|
public static void main(String[] args) {
|
||
|
Weapon excalibur = new Weapon("Excalibur", 7);
|
||
|
Weapon baton = new Weapon("Baton", 3);
|
||
|
Templar arthur = new Templar("Arthur", 30, 5, 3, excalibur);
|
||
|
Sorcerer merlin = new Sorcerer("Merlin", 28, 2, baton);
|
||
|
|
||
|
try {
|
||
|
arthur.takeDamage(50);
|
||
|
} catch (DeadCharacterException e) {
|
||
|
System.out.println(e.getMessage());
|
||
|
}
|
||
|
|
||
|
try {
|
||
|
arthur.takeDamage(2);
|
||
|
} catch (DeadCharacterException e) {
|
||
|
System.out.println(e.getMessage());
|
||
|
}
|
||
|
try {
|
||
|
arthur.attack(merlin);
|
||
|
} catch (DeadCharacterException e) {
|
||
|
System.out.println(e.getMessage());
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
and its output :
|
||
|
```shell
|
||
|
$ javac *.java -d build
|
||
|
$ java -cp build ExerciseRunner
|
||
|
The templar Arthur is dead.
|
||
|
The templar Arthur is dead.
|
||
|
$
|
||
|
```
|
||
|
|
||
|
### Notions
|
||
|
[Try](https://docs.oracle.com/javase/tutorial/essential/exceptions/try.html)
|
||
|
[Catch](https://docs.oracle.com/javase/tutorial/essential/exceptions/catch.html)
|
||
|
[Declaring thrown](https://docs.oracle.com/javase/tutorial/essential/exceptions/declaring.html)
|
||
|
[Throwing](https://docs.oracle.com/javase/tutorial/essential/exceptions/throwing.html)
|