1. Java / Говнокод #5491

    −89

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    try {
    	throw new Exception("TRANSACTION IS OPENED");
    } catch (Exception e) {
    	System.out.println(e.getMessage());
    	e.printStackTrace();
    }

    реальный проект

    Запостил: 3.14159265, 02 Февраля 2011

    Комментарии (22) RSS

    • Бывают же такие говнокоды, что даже не верится в них.
      Ответить
      • /5451
        Ответить
      • я сам не верил, пока в релизном коде не встретил.

        >/5451
        на говнокоде не был с выходных - не заметил.i'm so sloo-o-w
        Ответить
    • Ну если надо вывести стек вызовов, то что делать? Я вот не знаю, есть ли нормальный оператор для этого.
      Ответить
      • эээ а зачем?
        Ответить
        • только если в целях отладки ... но для этого же есть отладчик.
          Ответить
        • как зачем? ща я покажу зачем. во
          private static String getCaller() {
              try {
                throw new Exception();
              } catch (final Exception e) {
                final StackTraceElement[] stackTrace = e.getStackTrace();
                for (final StackTraceElement element : stackTrace) {
                  final String className = element.getClassName();
                  if ((className != null)
                      && !className.equals(Log.class.getCanonicalName())) {
                    return className;
                  }
                }
              }
              return null;
            }
          Ответить
          • дебагер не изобрели ещё?
            Ответить
          • То есть чтобы получить StackTraceElement нужно фиктивно кидать исключение, иначе никак ?
            Ответить
          • Thread.currentThread().getStackTrace().

            Или, записывая непонятнее, (new Exception()).getStackTrace().
            Ответить
            • Круто! хорошо что хоть кто-то ИТТ хорошо разбирается в предмете. Плохо что это не я. Хотя и думал насчет new Exception()
              Ответить
    • Exceptin e = new Exception("TRANSACTION IS OPENED");
      System.out.println(e.getMessage());
      e.printStackTrace();


      Так не работает?
      Ответить

    Добавить комментарий