异常与throws子句不兼容

时间:2016-04-03 19:26:09

标签: java exception-handling throws

当我创建自己的异常时,我在那里开发了一个小的AOP独立项目,它给出了与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");
    }








}

1 个答案:

答案 0 :(得分:0)

由于方法Payment()未使用throws InsufficientAmountException声明,因此您的try...catch块无效,这就是您收到错误的原因。删除try...catch块,或修改Payment()以投掷InsufficientAmountException