2016-11-08 68 views
-4

我不知道我的代码在哪里投掷它的流。它有我不知道他们如何工作的各种错误。通过类异常的控制流不支持super(int)的超级参数,就像super(string)类型一样。我大多是Java新手,这是一个基于用户的异常处理程序。没有合适的构造函数发现异常(int)

import java.util.*; 
class invalidbal extends Exception{ 
    invalidbal (int balance, int transaction){ 
    super(balance); 
    super(transaction); 
} 
class TestCustomException1{ 

static void validate(int balance, int transaction)throws invalidbal{ 
     if(balance - transaction < 0) 
      throw new InvalidAgeException("You are not eligible to Transact"); 
     else 
      System.out.println("Post transaction your current balance is" + (balance - transaction)); 
} 

public static void main(String args[]){ 
Scanner s = new Scanner(System.in); 
     System.out.println("Welcome to transaction checker"); 
    System.out.println("Please enter the balance:"); 
    a = s.nextInt(); 
    System.out.println("Please enter the transaction:"); 
    b = s.nextInt(); 
     try{ 
      validate(a,b); 
     }catch(Exception m){System.out.println("Exception occured: "+m);} 

    System.out.println("Thank you for checking!"); 
     } 
    } 
} 

输出如下。

[email protected]:~$ javac bal.java 
bal.java:4: error: no suitable constructor found for Exception(int) 
    super(balance); 
    ^
    constructor Exception.Exception(String) is not applicable 
     (argument mismatch; int cannot be converted to String) 
    constructor Exception.Exception(Throwable) is not applicable 
     (argument mismatch; int cannot be converted to Throwable) 
bal.java:5: error: call to super must be first statement in   constructor 
    super(transaction); 
    ^
bal.java:9: error: Illegal static declaration in inner class  invalidbal.TestCustomException1 
    static void validate(int balance, int transaction)throws invalidbal{ 
      ^
    modifier 'static' is only allowed in constant variable declarations 
bal.java:20: error: cannot find symbol 
     a = s.nextInt(); 
     ^
    symbol: variable a 
    location: class invalidbal.TestCustomException1 
bal.java:22: error: cannot find symbol 
     b = s.nextInt(); 
     ^
    symbol: variable b 
    location: class invalidbal.TestCustomException1 
bal.java:24: error: cannot find symbol 
       validate(a,b); 
         ^
    symbol: variable a 
    location: class invalidbal.TestCustomException1 
bal.java:24: error: cannot find symbol 
       validate(a,b); 
        ^
    symbol: variable b 
    location: class invalidbal.TestCustomException1 
bal.java:16: error: Illegal static declaration in inner class invalidbal.TestCustomException1 
    public static void main(String args[]){ 
       ^
    modifier 'static' is only allowed in constant variable declarations 
Note: Some messages have been simplified; recompile with - Xdiags:verbose to get full output 
8 errors 
+0

在这里你去https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html#constructor_summary - 选择一个新的构造函数来使用 –

+0

并选择*一个*缺点tructor。你不能两次调用super。 –

+0

[Java找不到合适的构造函数]的可能重复(http://stackoverflow.com/questions/31354110/java-no-suitable-constructor-found) –

回答

0

进入每在Java文档here没有用于Exception类没有构造函数输入作为int代码hereAs,所以你得到这些错误:从invalidbal()构造

删除follwoing行代码

super(balance); 
super(transaction); 
相关问题