2016-11-08 21 views
-4

私のコードがそのフローをどこに投げかけているのかわかりません。それは私は彼らがどのように動作するか知っていないさまざまなエラーがあります。クラス例外による制御の流れは、super(string)型のようにsuper(int)のsuper引数をサポートしていません。私はほとんどがJavaには新しく、これはユーザーベースの例外処理プログラムです。Exception(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

を選択し、* one * consを選択します。トラクター。 'super'を2回呼び出すことはできません。 –

+0

[Javaの適切なコンストラクタが見つかりません]の重複している可能性があります(http://stackoverflow.com/questions/31354110/java-no-suitable-constructor-found) –

答えて

0

は、したがって、あなたがこれらのエラーを取得している、intとして入力を受け取りExceptionクラスにはコンストラクタがないのJavaドキュメントhereあたりのコードhereAsを入力します。invalidbal()コンストラクタ

からのコード行をfollwoing

削除を

super(balance); 
super(transaction); 
関連する問題