Kezdőoldal » Számítástechnika » Programozás » Javaban hogyan lehetne hiba...

Javaban hogyan lehetne hiba esetén esetszétválasztást végrehajtani, illetve megoldani, hogy CTRL+C-vel ki lehessen lépni a programból(ekkor ne produkáljon hibaüzenetet)?

Figyelt kérdés
Azt kéne valahogy megoldanom, hogy 2 szám osztásat kellene megoldani, ez még egyszerű. Viszont azt kellene megoldani, hogy, ha nem számot adunk meg, akkor üzenet jelenjen meg, ha a második szám(osztandó), akkor jelenjen meg a hibaüzenet. A másik, pedig, azt hogyan lehetne megoldani, hogy billentyűlenyomásra ki lehessen lépni a programból. Ugyebár try-catch elágazást kell csinálnunk, a try-ba megy az osztás, hiba esetén pedig a catch-ben kell ezt az esetszétválasztást végrehajtani. Viszont hogy lehetne megoldani?
2022. jan. 5. 20:55
 1/8 A kérdező kommentje:
Netbeans-t használok, tehát itt 0 esetén az catch( ArithmeticException e) nem működik, itt egyszerűen kiírja, hogy végtelen.
2022. jan. 5. 21:37
 2/8 anonim ***** válasza:
Nem IDE függő a kód futása.
2022. jan. 5. 21:43
Hasznos számodra ez a válasz?
 3/8 A kérdező kommentje:

package kivételkezelés;

import java.util.Scanner;

import java.io.*;

import java.util.InputMismatchException;


public class Kivételkezelés {

public static void main(String[] args) {

Scanner beolvas = new Scanner(System.in);

label1:

try{

System.out.println("Ada meg az osztandót!");

double a = beolvas.nextDouble();

System.out.println("Add meg az osztót!");

double b = beolvas.nextDouble();

double c = a/b;

System.out.println("Az osztás eredménye: " + c);

if (b==0){

System.err.println("Hiba! 0-val osztani nem lehet");

break label1;

}

}

catch (ArithmeticException e1) {

System.err.println("Hiba! 0-val osztani nem lehet");

break label1;

}

catch (InputMismatchException e2) {

System.out.println("Számot adj meg! ");

break label1;

}

}

}

2022. jan. 5. 21:59
 4/8 A kérdező kommentje:
És még ehhez jönne valahogy, hogy CTRL+C-vel ki lehessen lépni valahogy. Valaki tudna ebben segíteni? 0-val való osztást csak így tudtam kiszűrni, mivel az én verzióm nem aritmetrikai hibát ad ki, csak szimplán kiadja, hogy Infinitive. Meg a címkét( label1) ignorálja valamiért a program, pedig az azt A szerepet játszaná, hogy a 2 hibalehetőség esetén kezdje elölről a számok bekérését.
2022. jan. 5. 22:04
 5/8 anonim ***** válasza:

Nagyon nehéz valami online oldalba kódot írni és itt megosztani? Tőlem, lehet github is. Mert nem fogom a fáradtságot venni, hogy beformázzam.


Példa: [link]

2022. jan. 6. 13:37
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

double input;


while(true){

try{ input = Double.parseDouble(consoleInput);

break;}

catch(...)

{ // hibaüzenet}

}

2022. jan. 6. 14:11
Hasznos számodra ez a válasz?
 7/8 A kérdező kommentje:
Köszönöm kedves 3.válaszoló! A while(true)-val, meg a break-kel(kilépéshez megfelelő számok esetén) valóban működik. Sokat segítettél. Márcsak azt kellene megoldanom, hogy CTRL+C vagy CTRL+D lenyomására kilépjen a programból. Ha nem szám karaktert adok meg(ami a második esetelkülönítés), végtelen ciklust kapok, ilyenkor kéne tudnom kilépnem gombnyomásra( gombnyomáskor nem kell, hogy adjon hibaüzenetet).
2022. jan. 6. 16:22
 8/8 A kérdező kommentje:
Amúgy miért kapok végtelen ciklust, nem ugyanúgy kénne folytatódnia a while elejétől?
2022. jan. 6. 16:26

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!