Tworzenie własnego wyjątku

0
import java.util.*;
import java.util.Scanner;
class bib{
String ksiazka[] = new String[20];
int wyp[] = new int[20];

public void wypozycz(int numerksiazki){
	if (wyp[numerksiazki] == 1){
System.out.println("Masz ja juz wypozyczone!, tu będzie wyjatek");
}
	 if (wyp[numerksiazki] == 0){
wyp[numerksiazki] = 1;
System.out.println("Wypozyczyles wlasnie ksiazke");
}
}
public void wypelnij(){
ksiazka[1] = "1.Twoja stara odkrywa wszechswiat";
ksiazka[2] = "2.Powrot do poczatkow czlowieczenstwa, malp chodzacych po drzewach";
ksiazka[3] = "3.Granica";
ksiazka[4] = "4.Zabic ksiedza";
ksiazka[5] = "5.W poszukiwaniu zaginionej warki";
wyp[1] = 0;
wyp[2] = 0;
wyp[3] = 0;
wyp[4] = 0;
wyp[5] = 0;
}
public void wykaz(){
for(int i = 1; i<6;i++){
System.out.println(ksiazka[i]);
}
}
}
class Main {
public static void main (String args[]) {
bib biba = new bib();
biba.wypelnij();
biba.wykaz();
int y = 1;
while (y!=0){

Scanner klaw = new Scanner(System.in);
System.out.println("Podaj numer ksiazki do wypozyczenia");
y = klaw.nextInt();
if(y!=0) biba.wypozycz(y);
}
System.out.println("Dziekuje za skorzystanie z biblioteki");
}
}



Witam utworzyłem kod lecz muszę teraz go uzupełnić o nowy własny wyjątek, który powinien reagować na to, że ktoś chce wypożyczyć 2 raz tą samą książkę
Czyli tutaj powinien wystąpić wyjątek:

	if (wyp[numerksiazki] == 1){
System.out.println("Masz ja juz wypozyczone!, tu będzie wyjatek");
}

Tylko nie wiem jak się za to zabrać, co innego gdy w kodzie wstawić wyjątek który już jest w bibliotekach javy(np. dzielenie przez zero), lecz tu nie mam żadnego pomysłu , mógłby mi ktoś pomóc, lub po prostu umieścić jakiś prosty przykład z wykorzystaniem własnego wyjątku?
Z góry dzięki za pomoc.

0

Niebardzo mi się che to czytać, bo wygląda jak kupa siana, ale czemu trzymasz coś w tablicach, kiedy masz listy...
Czemu książka to obiekt String zamiast zrobic wlasny: Ksiazka?

własny wyjątek? tworzysz klasę dziedziczącą po Exception i nazywasz ją np. AlreadyRentedException
korzystasz z niej tak:
throw new AlreadyRentedException();
możesz w jej konstruktorze dodać parametr typu Ksiazka

0

Możesz wykorzystać standardowy wyjątek Javy: java.lang.IllegalStateException (w stanie, w którym jest obecnie aplikacja nie jest możliwe wypożyczenie kolejnej książki - stan jest niewłaściwy) lub stworzyć własny wyjątek poprzez rozszerzenie klasy java.lang.Exception (jeżeli dziedziczysz po tej klasie, to Twoje wyjątki muszą być przechwycone - kod, który je wyrzuca musi być w klauzuli try-catch, alternatywą jest dziedziczenie po java.lang.RuntimeException), np:

//BookAlreadyRentException.java
public class BookAlreadyRentException extends Exception{}
//Twoja klasa
if (wyp[numerksiazki] == 1){
     throw new BookAlreadyRentException();
}
0

dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1