I need to see the result as a boolean result: true. But there's a catch I need to do it in a non-ordinary way.
import java.io.IOException; public class FlashLight { private Bulb bulb; private Battery[] batteries; public void on() { try { if (this.IsThereEnoughPower()) { this.bulb.setOn(true); for (Battery b : batteries) { b.setPower(b.getPower() - this.bulb.getBrightness()); } } } catch (IOException e) { System.out.println(e.getMessage()); this.setBatteries(new Battery[4]); } } I need to catch the exception in method on() but i can only modify method: DetermineIfFlashlightCanBeTurnedOn
public boolean DetermineIfFlashlightCanBeTurnedOn() throws IOException { return bulb != null && DetermineIfBatteriesAreInstalled() && IsThereEnoughPower(); } private boolean DetermineIfBatteriesAreInstalled() throws IOException { if (batteries.length < 4) { throw new IOException(Math.abs(-4 + batteries.length)); } for (Battery b : batteries) { if (b == null) { return false; } } return true; } private boolean IsThereEnoughPower() { for (Battery b : batteries) { if (b.getPower() < MIN_BATTERY_POWER) { return false; } } return true; } private static void testLatarki(String... args) { FlashLight flashlight = new Flashlight(); System.out.println(flashlight.DetermineIfFlashlightCanBeTurnedOn()); } } Exception can be caught only in on() method. DetermineIfBatteriesAreInstalled() DetermineIfFlashlightCanBeTurnedOn must be signed as: throws IOException.