2016-04-03 2 views
-2

Я разрабатываю автономный автономный проект AOP, когда создаю свое собственное исключение, оно дает исключение этой ошибки, несовместимое с предложением throws.please, если кто-то может очень помочь оценить.Исключение несовместимо с предложением throws

Это класс исключения я был написан

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); 
    } 
} 

Это метод

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"); 
    } 
} 

Здесь основным методом

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

ошибки я получаю enter image description here

Основной метод

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

В чем проблема? –

+0

Я упоминал об ошибке со скриншотом –

+1

У вас есть нулевой указатель. –

ответ

0

Поскольку метод Payment() не объявлен с throws InsufficientAmountException, ваш try...catch блок бесполезно, поэтому вы получите сообщение об ошибке. Либо удалите блок try...catch, либо измените Payment(), чтобы выбросить InsufficientAmountException.

Смежные вопросы