2013-08-24 5 views
-3

здесь я создаю свое настраиваемое исключение и хочу, чтобы исключить метод деления для неправильного ввода до тех пор, это было прекрасно, я могу бросить свое обычное исключение, но проблема в его улавливании код следующимсоздал мое собственное исключение, неспособное его правильно поймать

class A extends Exception { 
    A(String s) { 
     super(s); 
    } 
} 

class Emp { 
    int a; 
    int b; 

    void divide(int a, int b) throws A { 
     if (b == 0) { 
      throw new A("super exception is there"); 
     } else 
      System.out.println(a/b); 

    } 

    public static void main(String args[]) { 
     Emp m = new Emp(); 
     try { 
      m.divide(10, 0); 
     } catch (A e) { 
      System.out.println(e); 
     } 

    } 
} 

он дает мне ошибку основной метод не нашел меня класс
не может понять, почему это происходит

+0

По крайней мере, отформатируйте свой код, чтобы он был легко читаемым. Вам также необходимо включить хотя бы часть диалога ошибок. – redFIVE

+3

Этот вопрос не соответствует теме, поскольку он просит исправить рабочий код. –

+0

Стилистическое предложение: ваше пользовательское 'Exception' должно называться чем-то вроде' AException' или 'CustomDivideByZeroException', так что другие разработчики (и вы позже) можете легко сказать, что это« Исключение ». – SimonT

ответ

1

поскольку ваш метод main() определяется класс Emp переименуйте ваш .java-файл в Emp.java. Вероятно, это A.java, потому что именно поэтому Java ищет метод main() в классе A.

+0

Да, это так. Просто скопировал и вложил его в Eclipse. – asteri

0

Я пробовал ваш код, и он работает нормально. возвращающий следующий результат:

A: super exception is there 

Какое имя вашего java-файла. Я назвал его Emp.java как Emp класс содержит main метод.

0

Это потому, что ваш основной метод находится в вашем классе Emp не в классе A.

Назовите ваш исходный файл «Emp.java» и скомпилируйте его с помощью «javac Emp.java», если вы используете командную строку и запускаете ее с помощью «java emp».