Last Updated on 14 years by Mas Herdi
Di dalam source code ini ada tiga jenis Exception yang dapat ditangani, yaitu NumberFormatException, ArithmecticException, dan Exception biasa.
NumberFormatException berfungsi untuk menangani kesalahan2 dalam format penulisan angka. Contohnya menulis “,,5” atau ‘..5’ yang seharusnya adalah “.5” dalam format Double. Untuk penulisan ‘,5’ akan otomatis dikonversi menjadi ‘.5’ atau 0.5.
ArithmeticException berfungsi untuk menangani kesalahan pada perhitungan, contohnya pembagian dengan angka nol.
class Mathe.java
import java.util.Scanner; public class Mathe { private static Scanner s = new Scanner(System.in); private static String a, b, c, d; private static char x,y; private static double i,j,k,l;
static String getValue() { a = s.nextLine(); return a; } static String getValue2() { b = s.nextLine(); return b; } static char getFunc() { d = s.nextLine(); x = d.charAt(0); return x; } static char getOperator() { d = s.nextLine(); y = d.charAt(0); return y; } static double getKurang(double j, double k) { i = j - k; return i; } static double getTambah(double j, double k) { i = j + k; //System.out.println(i); return i; } static double getKali(double j, double k) { i = j * k; return i; } static double getBagi(double j, double k) throws ArithmeticException { if(k == 0) { throw new ArithmeticException(); } else { i = j/k; } return i; } }
class MatheTest.java
import static java.lang.System.out; class MatheTest { static double i,j,k=0; static char n, m; public static void main(String... args) { /* * * Memakai static import, menulis jadi lebih singkat :D * Memakai static method, nggak perlu instantiate segala :)*/ try{ out.println("Program Anticipated Risky Behavior Calculator "); out.println("Dibuat oleh Hafizh Herdi Naufal"); out.println("BEBAS UNTUK DIDISTRIBUSIKAN"); out.print("Masukkan bilangan pertama : "); i = Double.parseDouble(Mathe.getValue().replaceFirst(",",".")); out.print("Masukkan bilangan kedua : "); j = Double.parseDouble(Mathe.getValue2().replaceFirst(",",".")); out.print("Masukkan operator aritmatika : "); m = Mathe.getOperator(); if( m == '+') { k = Mathe.getTambah(i,j); //out.print("Hello"); } else if(m == '-') { k = Mathe.getKurang(i,j); } else if(m == '/') { k = Mathe.getBagi(i,j); } else if(m == '*') { k = Mathe.getKali(i,j); } out.print("Masukkan fungsi, = untuk menjalankan : "); n = Mathe.getFunc(); if(n == '=') { out.println(String.format("Hasilnya adalah %,.2f", k)); } else { throw new Exception(); } } catch(ArithmeticException e) { out.println("Pembagian dengan nol"); } catch(NumberFormatException e) { out.println("Tanda titik hanya boleh ditulis satu kali"); } catch(Exception ec) { out.println("Exception Lain" + ec); } } }