2016-08-26 4 views
1

Программа для получения исключения с указанием «Дальнейшие транзакции невозможны до момента оформления счета». когда сумма невыплаченной кредитной карты клиента превышает 2000 долларов США или неоплачивается до 45 дней. Предположим, что текущая дата равна 01/12/2015.OverLimit Обработка исключений в java

  1. Создайте собственный класс исключений OverLimitException, который расширяет Exception.
  2. Добавить конструктор, который принимает объект Throwable, вызывает конструктор суперкласса, используя super(), и выводит результат, как описано в описании проблемы.

Я создал два класса один основной и другой счет

Account.java

import java.text.*; 
import java.util.*; 
import java.util.concurrent.TimeUnit; 

public class Account { 

String accountNumber; 
String accountName; 
Double dueAmount; 

public Account(String accountNumber, String accountName,Double dueAmount) throws ParseException { 
    this.accountNumber = accountNumber; 
    this.accountName = accountName; 
    this.dueAmount = dueAmount; 
} 

public Account() { 
} 

public Boolean validate(String dueDate,Double unpaid,Double amount){ 
    DateFormat sf = new SimpleDateFormat("dd/MM/yyyy"); 
    sf.setLenient(false); 
    try{ 
     Date d = sf.parse(dueDate); 
     Date d1 = sf.parse("01/12/2015"); 
     // long curDate = new Date().getTime(); 
     long diff =d1.getTime() - d.getTime(); 
     long daysDiff = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS); 
     if(daysDiff > 45 || unpaid > 2000){ 
      throw new OverLimitException("Further Transactions Not Possible until clearance of bill."); 
     } 
    }catch(Exception e){ 
     return false; 
    } 
    return true; 
} 

public void display() {  
    System.out.println("Transaction successsfully completed."); 
    System.out.println("Account Number : "+this.accountNumber); 
    System.out.println("Account Name : "+this.accountName); 
    System.out.println("Unpaid Amount : "+this.dueAmount); 
} 
} 

Но я получаю сообщение об ошибке с указанием

error: cannot find symbol 
throw new OverLimitException("Further Transactions Not Possible until clearance of bill."); 
^ 
symbol: class OverLimitException 

Может ли один пожалуйста, помогите мне решить Эта проблема?

+0

И намек: вы не хотите, чтобы вернуться ** B ** oolean, но ** б ** oolean. – GhostCat

ответ

1

Функция valiade должен бросить OverLimitException и вы должны определить его

public Boolean validate(String dueDate,Double unpaid,Double amount) 
     throws OverLimitException{ 
     ... 
     if(daysDiff > 45 || unpaid > 2000){ 
      throw new OverLimitException("Further Transactions Not Possible until clearance of bill."); 
    } 
    ... 

} 

и осуществлять OverLimitException; здесь является example

 public class OverLimitException extends Exception { 
     public OverLimitException(String message) { 
      super(message); 
     } 
    } 
3

OverLimitException не является исключением, которое поставляется с Java.

Как и другие классы, которые вы создали, вам тоже нужно написать этот класс; например:

public class OverLimitException extends RuntimeException { 

и предоставить конструктор, который принимает строку сообщения, например.

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