2016-04-03 30 views
-2

Ich entwickle kleine AOP Standalone-Projekt dort, wenn ich meine eigene Ausnahme erstellen, geben Sie diese Fehler Ausnahme inkompatibel mit throws clause.please, wenn jemand helfen kann sehr schätzen.Exception inkompatibel mit throws-Klausel

Dies ist die Exception-Klasse i

geschrieben wurde
package com.mtit.exceptions; 

public class InsufficientAmountException extends Exception 
{ 
    /** 
    * exception for handling invalid payment 
    */ 
    private static final long serialVersionUID = 1L; 

    public InsufficientAmountException(String message) 
    { 
     super(message); 
    } 
} 

Dies ist die Methode

public void PaymentPatient(String PatientID,double discountRate,double ChargePerDay,double cashAmount) throws InsufficientAmountException 

{ 

    double totalAmount=CalculateTotalAmountPatient(PatientID,discountRate,ChargePerDay); 

    if(cashAmount>=totalAmount) 
    { 
     double balance=cashAmount-totalAmount; 
     System.out.println("Payment Succefully done your balance is "+"\t"+balance); 

    } 
    else 
    { 
     throw new InsufficientAmountException("Balance is insufficient"); 
    } 
} 

Hier ist die wichtigste Methode

try 
    { 
     //call the payment method i have written above 
    } 
    catch(InsufficientAmountException e) 
    { 
     System.out.println(""); 
    } 

Fehler Ich erhalte enter image description here

main-Methode

public class Main { 

public static void main(String[] args) 
{ 


    try 
    { 
     Payment(); 
    } 
    catch(InsufficientAmountException e) 
    { 
     System.out.println(""); 
    } 



} 
public static void Payment() 
{ 
    PatientService patientService=new PatientServiceImpl(); 
    Scanner scanner=new Scanner(System.in); 

    System.out.println("Enter Patient ID"); 
    String id=scanner.nextLine(); 

    System.out.println("Enter Discount rate"); 
    double discount=Double.parseDouble(scanner.nextLine()); 

    System.out.println("Enter No of Days"); 
    int noOfDays=Integer.parseInt(scanner.nextLine()); 

    double totalAmount=patientService.CalculateTotalAmountPatient(id, discount, noOfDays); 

    System.out.println("Your total charge is"+"\t"+totalAmount); 

    System.out.println("Would you like to do payment enter yes or no"); 
    String result=scanner.nextLine(); 

    if(result=="yes") 
    { 

     System.out.println("Enter charge per day"); 
     double ChargePerDay=Double.parseDouble(scanner.nextLine()); 

     System.out.println("Enter cash amount"); 
     double cashAmount=Double.parseDouble(scanner.nextLine()); 

     patientService.PaymentPatient(id, discount, ChargePerDay, cashAmount); 

    } 
    else 

    { 
     System.out.println("Please do the payment with in 3 days to get rid from tax"); 
    } 








} 
+2

Was ist das Problem? –

+0

Ich habe den Fehler mit einem Screenshot –

+1

erwähnt Sie haben einen Null-Zeiger auf. –

Antwort

0

Da das Verfahren Payment() nicht mit throws InsufficientAmountException, Ihr try...catch Block deklariert wird, ist nutzlos, das ist, warum Sie den Fehler. Entfernen Sie entweder den try...catch Block oder ändern Sie Payment(), um InsufficientAmountException zu werfen.