I'm trying to figure out to change the exceptions for the scanner in several different methods into one aspect, I have done several things but a few times I've tried to run it I'm getting a no main error and no aspectj runtime error here is the code:
import java.util.Scanner; public class atm { static Scanner sc = new Scanner(System.in); static int check = 1000; static int saving = 3500; static int i = 0; static int c = 0; static int s = 0; static int p = 0; public static void main(String[] args) { welcome(); login(); System.out.println("Your checking has a balance of: $" + check + "\nYour savings has a balance of: $" + saving); menu(); choice(); end(); } public static void welcome() { String welcome; welcome = "Welcome Mr. Smith, please enter your pin:"; System.out.println(welcome); } public static void login() { String wrong; wrong = "You have entered the wrong pin, please try again"; int x = 1234; int y = 0; Scanner sc = new Scanner(System.in); try { y = sc.nextInt (); } catch (Exception e) { System.out.printf("only numbers are allowed\n"); } if (x!= y) { System.out.println(wrong); p = p + 1; if ( p == 3) { System.out.println("You did not enter your pin 3 times, atm is ending, please try again later"); end(); } int x1 = 3 - p; System.out.println("You have " + x1 + " more times to enter a correct value"); System.out.println("Please enter your pin again:"); login(); } else { System.out.println("Thank you Mr. Smith"); } } public static void menu() { String choice; choice = "What would you like to do"; System.out.println(choice + ":" + "\n1 Withdraw" + "\n2 Transfer"); } public static void choice() { Scanner sc = new Scanner(System.in); int option = 0; try { option = sc.nextInt(); } catch (Exception e) { System.out.printf("only numbers are allowed\n"); } if (option == 1) { withdraw(); } if (option == 2) { transfer(); } else { System.out.println("You did not enter a valid option, please try again"); choice(); } } public static void transfer() { System.out.println("Which account would you like to transfer from \n1 Checking \n2 Savings"); Scanner sc = new Scanner(System.in); int option = 0; try { option = sc.nextInt(); } catch (Exception e) { System.out.printf("only numbers are allowed\n"); transfer(); } if (option == 1) { checkingtransfer(); System.out.println("You chose to transfer money from checking to savings"); } if (option == 2) { savingstransfer(); System.out.println("You chose to transfer money from savings to checking"); } else { System.out.println("You did not enter a valid option, please try again"); transfer(); } } public static void checkingtransfer() { System.out.println("How much would you like to move:"); Scanner sc = new Scanner(System.in); int value = 0; try { value = sc.nextInt(); } catch (Exception e) { System.out.printf("only numbers are allowed\n"); checkingtransfer(); } if (value <= check) { check = check - value; saving = saving + value; System.out.println("You have transfered $" + value + " to your savings from your checking"); System.out.println("Your checking has a balance of: $" + check + "\nYour savings has a balance of: $" + saving); dosomethingelse(); } else { System.out.println("You do not have enough in your checking to transfer that amount"); c = c + 1; if ( c == 3) { System.out.println("You failed to enter a correct value 3 times, atm is ending, please try again later"); end(); } int x = 3 - c; System.out.println("You have " + x + " more times to enter a correct value"); checkingtransfer(); } } public static void savingstransfer() { System.out.println("How much would you like to move:"); Scanner sc = new Scanner(System.in); int value = 0; try { value = sc.nextInt(); } catch (Exception e) { System.out.printf("only numbers are allowed\n"); savingstransfer(); } if (value <= saving) { saving = saving - value; check = check + value; System.out.println("You have transfered $" + value + " to your checking from your savings"); System.out.println("Your checking has a balance of: $" + check + "\nYour savings has a balance of: $" + saving); dosomethingelse(); } else { System.out.println("You do not have enough in your savings to transfer that amount"); s = s + 1; if ( s == 3) { System.out.println("You failed to enter a correct value 3 times, atm is ending, please try again later"); end(); } int x = 3 - s; System.out.println("You have " + x + " more times to enter a correct value"); checkingtransfer(); } } public static void dosomethingelse() { System.out.println("Would you like to withdraw money as well? \n1 Yes \n2 No"); Scanner sc = new Scanner(System.in); int option = 0; try { option = sc.nextInt(); } catch (Exception e) { System.out.printf("only numbers are allowed\n"); dosomethingelse(); } if (option == 1) { withdraw(); } if (option == 2) { end(); } else { System.out.println("You did not enter a valid option, please try again"); choice(); } } public static void withdraw() { System.out.println("FYI: You may only withdraw from checking"); System.out.println("What would you like to withdraw(it must be in denominations of 20 and no more than 200):"); Scanner sc = new Scanner(System.in); int wm = 0; try { wm = sc.nextInt(); } catch (Exception e) { System.out.printf("only numbers are allowed\n"); withdraw(); } if (wm <= 200 & (wm % 20) == 0 & check >= 0 & check - wm >= 0) { System.out.println("removing $" + wm + " from your checking account"); check = check - wm; System.out.println("Your new balance is: $" + check); System.out.println("Printing out your money, please remove your card money and reciept from the machine."); end(); } else { if (check < 0 | check - wm < 0 & i < 3) { System.out.println("Your account does not have enough funds"); i = i + 1; if ( i == 3) { System.out.println("You did not enter a correct value 3 times that was less than the amount of funds you had, atm is ending, please try again later"); end(); } int x = 3 - i; System.out.println("You have " + x + " more times to enter a correct value"); withdraw(); } if (wm > 200 | (wm % 20) != 0 & i < 3); { System.out.println("You have entered an incorrect withdraw value"); i = i + 1; if ( i == 3) { System.out.println("You did not enter a correct value 3 times, atm is ending, please try again later"); end(); } int x = 3 - i; System.out.println("You have " + x + " more times to enter a correct value"); withdraw(); } } } public static void end() { System.out.println("Thank you, Have a nice day"); System.exit(0); } } public aspect exception { declare soft : java.io.IOException : execution(void atm.login()); void around() : call(void atm.login()) { try { proceed(); } catch(Exception e) { System.out.println("aspect caught: only numbers are allowed\n"); } } } _______________________________________________ aspectj-users mailing list aspectj-users@eclipse.org https://dev.eclipse.org/mailman/listinfo/aspectj-users