General exception ошибка java

Consider this simple program. The program has two files:

File Vehicle.java

class Vehicle {
    private int speed = 0;
    private int maxSpeed = 100;

    public int getSpeed()
    {
        return speed;
    }

    public int getMaxSpeed()
    {
        return maxSpeed;
    }

    public void speedUp(int increment)
    {
        if(speed + increment > maxSpeed){
            // Throw exception
        }else{
            speed += increment;
        }
    }

    public void speedDown(int decrement)
    {
        if(speed - decrement < 0){
            // Throw exception
        }else{
            speed -= decrement;
        }
    }
}

File HelloWorld.java

public class HelloWorld {

    /**
     * @param args
     */
    public static void main(String[] args) {

        Vehicle v1 = new Vehicle();
        Vehicle v2 = new Vehicle();

            // Do something

            // Print something useful, TODO
        System.out.println(v1.getSpeed());
    }

}

As you can see in the first class, I have added a comment («// throw exception») where I would like to throw an exception. Do I have to define my own class for exceptions or is there some general exception class in Java I can use?

Peter Mortensen's user avatar

asked Aug 4, 2011 at 13:51

Richard Knop's user avatar

Richard KnopRichard Knop

80.4k149 gold badges392 silver badges551 bronze badges

4

You could create your own Exception class:

public class InvalidSpeedException extends Exception {

  public InvalidSpeedException(String message){
     super(message);
  }

}

In your code:

throw new InvalidSpeedException("TOO HIGH");

answered Aug 4, 2011 at 13:55

Fortega's user avatar

0

You could use IllegalArgumentException:

public void speedDown(int decrement)
{
    if(speed - decrement < 0){
        throw new IllegalArgumentException("Final speed can not be less than zero");
    }else{
        speed -= decrement;
    }
}

answered Aug 4, 2011 at 13:53

Maurício Linhares's user avatar

Maurício LinharesMaurício Linhares

39.8k14 gold badges121 silver badges158 bronze badges

2

Well, there are lots of exceptions to throw, but here is how you throw an exception:

throw new IllegalArgumentException("INVALID");

Also, yes, you can create your own custom exceptions.

A note about exceptions. When you throw an exception (like above) and you catch the exception: the String that you supply in the exception can be accessed throw the getMessage() method.

try{
    methodThatThrowsException();
}catch(IllegalArgumentException e)
{
  e.getMessage();
}

Peter Mortensen's user avatar

answered Aug 4, 2011 at 13:52

RMT's user avatar

RMTRMT

7,0104 gold badges25 silver badges37 bronze badges

9

It really depends on what you want to do with that exception after you catch it. If you need to differentiate your exception then you have to create your custom Exception. Otherwise you could just throw new Exception("message goes here");

answered Aug 4, 2011 at 13:54

Vlad's user avatar

VladVlad

10.6k2 gold badges34 silver badges38 bronze badges

3

The simplest way to do it would be something like:

throw new java.lang.Exception();

However, the following lines would be unreachable in your code. So, we have two ways:


  1. Throw a generic exception at the bottom of the method.
  2. Throw a custom exception in case you don’t want to do 1.

Peter Mortensen's user avatar

answered Nov 30, 2016 at 11:14

Sudip Bhandari's user avatar

Sudip BhandariSudip Bhandari

2,1351 gold badge27 silver badges25 bronze badges

Java has a large number of built-in exceptions for different scenarios.

In this case, you should throw an IllegalArgumentException, since the problem is that the caller passed a bad parameter.

answered Aug 4, 2011 at 13:53

SLaks's user avatar

SLaksSLaks

864k176 gold badges1901 silver badges1961 bronze badges

1

You can define your own exception class extending java.lang.Exception (that’s for a checked exception — these which must be caught), or extending java.lang.RuntimeException — these exceptions does not have to be caught.

The other solution is to review the Java API and finding an appropriate exception describing your situation: in this particular case I think that the best one would be IllegalArgumentException.

Peter Mortensen's user avatar

answered Aug 4, 2011 at 13:55

omnomnom's user avatar

omnomnomomnomnom

8,8734 gold badges41 silver badges50 bronze badges

It depends. You can throw a more general exception, or a more specific exception. For simpler methods, more general exceptions are enough. If the method is complex, then, throwing a more specific exception will be reliable.

Peter Mortensen's user avatar

answered Aug 4, 2011 at 13:56

Abimaran Kugathasan's user avatar

Одна из неожиданных ошибок — NullPointerException, когда пользователь ничего не делал, а «оно само», при входе на портал онлайн банки использующего TumarCSP.

При этом кнопка Вход не появляется.

Application Error General Exception

Name:cptumar NullPointerException:nullОшибка Application Error General Exception Name: cptumar NullPointerException:null - Mhelp.kzОшибка возникла в ОС Windows 7 x64 и браузере Internet Exlorer 8.

Проблему вызвало обновление антивируса Avast до полной своей версии с подключением расширенных компонентов защиты.

Проблема решается либо отключением экранов антивируса, либо возвратом на предыдущую версию.

Возможно и другие антивирусы тоже могут вызвать появление этой ошибки.

Отключив антивирус, мы видим появление окна входа в систему.

Исправление ошибок БТА онлайн - Mhelp.kz

[nx_heading style=»coloredline» heading_tag=»h4″ size=»24″ align=»left»]От автора:[/nx_heading]

Если проблема решена, один из способов сказать «Спасибо» автору — здесь.

Если же проблему разрешить не удалось и появились дополнительные вопросы, задать их можно на нашем форуме, в нашей группе Whatsapp.

Или же, воспользуйтесь нашей услугой «Удаленная помощь» доверив решение проблемы специалисту.

[nx_box title=»Поделиться этой статьей» style=»glass» box_color=»#ED303C»]Если данная статья вам помогла и вы хотели бы в ответ помочь проекту Mhelp.kz, поделитесь этой статьей с другими:

[/nx_box]

Время на прочтение
7 мин

Количество просмотров 87K

Привет, Хабр! Представляю вашему вниманию перевод статьи Fixing 7 Common Java Exception Handling Mistakes автора Thorben Janssen.

Обработка исключения является одной из наиболее распространенных, но не обязательно одной из самых простых задач. Это все еще одна из часто обсуждаемых тем в опытных командах, и есть несколько передовых методов и распространенных ошибок, о которых вы должны знать.

Вот несколько вещей, которые следует избегать при обработке исключений в вашем приложении.

Ошибка 1: объявление java.lang.Exception или java.lang.Throwable

Как вы уже знаете, вам нужно либо объявить, либо обработать проверяемое исключение. Но проверяемые исключения — это не единственные, которые вы можете указать. Вы можете использовать любой подкласс java.lang.Throwable в предложении throws. Таким образом, вместо указания двух разных исключений, которые выбрасывает следующий фрагмент кода, вы можете просто использовать исключение java.lang.Exception в предложении throws.

public void doNotSpecifyException() throws Exception {
doSomething();
}
public void doSomething() throws NumberFormatException, IllegalArgumentException {
// do something
}

Но это не значит, что вы должны это сделать. Указание Exeption или Throwable делает почти невозможным правильное обращение с ними при вызове вашего метода.Единственная информация, которую получает вызывающий вами метод, заключается в том, что что-то может пойти не так. Но вы не делитесь какой-либо информацией о каких-либо исключительных событиях, которые могут произойти. Вы скрываете эту информацию за обобщенными причинами выброса исключений.Становится еще хуже, когда ваше приложение меняется со временем. Выброс обобщенных исключений скрывает все изменения исключений, которые вызывающий должен ожидать и обрабатывать. Это может привести к нескольким непредвиденным ошибкам, которые необходимо найти в тестовом примере вместо ошибки компилятора.

Используйте конкретные классы

Гораздо лучше указать наиболее конкретные классы исключений, даже если вам приходится использовать несколько из них. Это сообщает вызывающему устройству, какие исключительные событий нужно обрабатывать. Это также позволяет вам обновить предложение throw, когда ваш метод выдает дополнительное исключение. Таким образом, ваши клиенты знают об изменениях и даже получают ошибку, если вы изменяете выбрасываемые исключения. Такое исключение намного проще найти и обработать, чем исключение, которое появляется только при запуске конкретного тестового примера.

public void specifySpecificExceptions() throws NumberFormatException, IllegalArgumentException {
doSomething();
}

Ошибка 2: перехват обобщенных исключений

Серьезность этой ошибки зависит от того, какой программный компонент вы реализуете, и где вы обнаруживаете исключение. Возможно, было бы хорошо поймать java.lang.Exception в основном методе вашего приложения Java SE. Но вы должны предпочесть поймать определенные исключения, если вы реализуете библиотеку или работаете над более глубокими слоями вашего приложения.

Это дает несколько преимуществ. Такой подход позволяет обрабатывать каждый класс исключений по-разному и не позволяет вам перехватывать исключения, которых вы не ожидали.

Но имейте в виду, что первый блок catch, который обрабатывает класс исключения или один из его супер-классов, поймает его. Поэтому сначала обязательно поймайте наиболее специфический класс. В противном случае ваши IDE покажут сообщение об ошибке или предупреждении о недостижимом блоке кода.

try {
doSomething();
} catch (NumberFormatException e) {
// handle the NumberFormatException
log.error(e);
} catch (IllegalArgumentException e) {
// handle the IllegalArgumentException
log.error(e);
}

Ошибка 3: Логирование и проброс исключений

Это одна из самых популярных ошибок при обработке исключений Java. Может показаться логичным регистрировать исключение там, где оно было брошено, а затем пробросить его вызывающему объекту, который может реализовать конкретную обработку для конкретного случая использования. Но вы не должны делать это по трем причинам:

1. У вас недостаточно информации о прецеденте, который хочет реализовать вызывающий объект вашего метода. Исключение может быть частью ожидаемого поведения и обрабатываться клиентом. В этом случае нет необходимости регистрировать его. Это добавит ложное сообщение об ошибке в файл журнала, который должен быть отфильтрован вашей операционной группой.

2. Сообщение журнала не предоставляет никакой информации, которая еще не является частью самого исключения. Его трассировка и трассировка стека должны содержать всю необходимую информацию об исключительном событии. Сообщение описывает это, а трассировка стека содержит подробную информацию о классе, методе и строке, в которой она произошла.

3. Вы можете регистрировать одно и то же исключение несколько раз, когда вы регистрируете его в каждом блоке catch, который его ловит. Это испортит статистику в вашем инструменте мониторинга и затрудняет чтение файла журнала для ваших операций и команды разработчиков.

Регистрируйте исключение там, где вы его обрабатываете

Таким образом, лучше всего регистрировать исключение тогда, когда вы его обрабатываете. Как в следующем фрагменте кода. Метод doSomething генерирует исключение. Метод doMore просто указывает его, потому что у разработчика недостаточно информации для его обработки. Затем он обрабатывается в методе doEvenMore, который также записывает сообщение журнала.

public void doEvenMore() {
try {
doMore();
} catch (NumberFormatException e) {
// handle the NumberFormatException
} catch (IllegalArgumentException e) {
// handle the IllegalArgumentException
}
}
public void doMore() throws NumberFormatException, IllegalArgumentException {
doSomething();
}
public void doSomething() throws NumberFormatException, IllegalArgumentException {
// do something
}

Ошибка 4: использование исключений для управления потоком

Использование исключений для управления потоком вашего приложения считается анти-шаблоном по двум основным причинам:

Они в основном работают как оператор Go To, потому что они отменяют выполнение блока кода и переходят к первому блоку catch, который обрабатывает исключение. Это делает код очень трудным для чтения.

Они не так эффективны, как общие структуры управления Java. Как видно из названия, вы должны использовать их только для исключительных событий, а JVM не оптимизирует их так же, как и другой код.Таким образом, лучше использовать правильные условия, чтобы разбить свои циклы или инструкции if-else, чтобы решить, какие блоки кода должны быть выполнены.

Ошибка 5: удалить причину возникновения исключения

Иногда вам может понадобиться обернуть одно исключение в другое. Возможно, ваша команда решила использовать специальное исключение для бизнеса с кодами ошибок и единой обработкой. Нет ничего плохого в этом подходе, если вы не устраните причину.

Когда вы создаете новое исключение, вы всегда должны устанавливать первоначальное исключение в качестве причины. В противном случае вы потеряете трассировку сообщения и стека, которые описывают исключительное событие, вызвавшее ваше исключение. Класс Exception и все его подклассы предоставляют несколько методов-конструкторов, которые принимают исходное исключение в качестве параметра и задают его как причину.

try {
doSomething();
} catch (NumberFormatException e) {
throw new MyBusinessException(e, ErrorCode.CONFIGURATION_ERROR);
} catch (IllegalArgumentException e) {
throw new MyBusinessException(e, ErrorCode.UNEXPECTED);
}

Ошибка 6: Обобщение исключений

Когда вы обобщаете исключение, вы ловите конкретный, например, NumberFormatException, и вместо этого генерируете неспецифическое java.lang.Exception. Это похоже, но даже хуже, чем первая ошибка, которую я описал в этой статье. Он не только скрывает информацию о конкретном случае ошибки на вашем API, но также затрудняет доступ.

public void doNotGeneralizeException() throws Exception {
try {
doSomething();
} catch (NumberFormatException e) {
throw new Exception(e);
} catch (IllegalArgumentException e) {
throw new Exception(e);
}
}

Как вы можете видеть в следующем фрагменте кода, даже если вы знаете, какие исключения может вызвать метод, вы не можете просто их поймать. Вам нужно поймать общий класс Exception и затем проверить тип его причины. Этот код не только громоздкий для реализации, но его также трудно читать. Становится еще хуже, если вы сочетаете этот подход с ошибкой 5. Это удаляет всю информацию об исключительном событии.

try {
doNotGeneralizeException();
} catch (Exception e) {
if (e.getCause() instanceof NumberFormatException) {
log.error("NumberFormatException: " + e);
} else if (e.getCause() instanceof IllegalArgumentException) {
log.error("IllegalArgumentException: " + e);
} else {
log.error("Unexpected exception: " + e);
}
}

Итак, какой подход лучший?

Будьте конкретны и сохраняйте причину возникновения исключения.

Исключения, которые вы бросаете, должны всегда быть максимально конкретными. И если вы оборачиваете исключение, вы также должны установить исходный исключение в качестве причины, чтобы не потерять трассировку стека и другую информацию, описывающую исключительное событие.

try {
doSomething();
} catch (NumberFormatException e) {
throw new MyBusinessException(e, ErrorCode.CONFIGURATION_ERROR);
} catch (IllegalArgumentException e) {
throw new MyBusinessException(e, ErrorCode.UNEXPECTED);
}

Ошибка 7: добавление ненужных преобразований исключений

Как я уже объяснял ранее, может быть полезно обернуть исключения в пользовательские, если вы установите исходное исключение в качестве причины. Но некоторые архитекторы переусердствуют и вводят специальный класс исключений для каждого архитектурного уровня. Таким образом, они улавливают исключение в уровне персистентности и переносят его в MyPersistenceException. Бизнес-уровень ловит и обертывает его в MyBusinessException, и это продолжается до тех пор, пока оно не достигнет уровня API или не будет обработано.

public void persistCustomer(Customer c) throws MyPersistenceException {
// persist a Customer
}
public void manageCustomer(Customer c) throws MyBusinessException {
// manage a Customer
try {
persistCustomer(c);
} catch (MyPersistenceException e) {
throw new MyBusinessException(e, e.getCode()); 
}
}
public void createCustomer(Customer c) throws MyApiException {
// create a Customer
try {
manageCustomer(c);
} catch (MyBusinessException e) {
throw new MyApiException(e, e.getCode()); 
}
}

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

Обязательно добавьте информацию

Просто подумайте о коде, который должен обрабатывать исключение или о самом себе, когда вам нужно найти проблему, вызвавшую исключение. Сначала вам нужно прорваться через несколько уровней исключений, чтобы найти исходную причину. И до сегодняшнего дня я никогда не видел приложение, которое использовало этот подход, и добавляло полезную информацию с каждым слоем исключения. Они либо обобщают сообщение об ошибке и код, либо предоставляют избыточную информацию.

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

public void persistCustomer(Customer c) {
// persist a Customer
}
public void manageCustomer(Customer c) throws MyBusinessException {
// manage a Customer
throw new MyBusinessException(e, e.getCode()); 
}
public void createCustomer(Customer c) throws MyBusinessException {
// create a Customer
manageCustomer(c);
}

  • Подскажите пожалуйста что делать, Application error Exception EAccessViolation in module skype.exe at 0002E016. Access violation at address 0042E016 in module Skype.exe .Read of address 00000000?

    1. После чего, при каких обстоятельствах это происходит? Было ли так всегда?

    2. Какая ТОЧНАЯ версия операционной системы? Версия Skype?

    3. Работаете ли с привилегиями Администратора или рядового пользователя?

    Ответ vtk — чуть более, чем полная чушь.

  • Кто знает как исправить ошибку? При запуске системы выдает :) Исключение unknown coftware exception (0xc000001d) в приложении по адресу 0x0041 fof

    Для начала проверьте на целостность системных файлов:
    Командная строка, запускаем от имени администратора и в командной строке вписываем sfc /scannow, жмём Enter и ожидаем результата и запоминаем или записываем

    слово в слово

    то, что выдала командная строка

    в самом конце после процентов 100 сканирования

    и выкладываем мне в личку.
    После этого Скачайте автоматический сборщик логов от сюда:  
    http://safezone.cc/resources/autologger-regist-drongo.59/
    Альтернативная ссылка на  AutoLogger.zip:
    http://dragokas.com/php/Autologger/AutoLogger.zip
    Антивирусная утилита AVZ — находится в папке ..AutoLoggerAVZ
    Random’s System Information Tool (RSIT) (x86x64) — находится в папке ..AutoLoggerRSIT
    Check Browsers’ LNK by Dragokas & regist — находится в папке ..AutoLoggerCheckBrowsersLNK
    HiJackThis — находится в папке ..AutoLoggerRSIT

    * .. — путь к папке откуда запустили AutoLogger.exe

    Все полученные логи мне в личку!!!

  • Как удалить этот ESET Smart Security, если но при удалении выдаёт ошибку?(вн.)
  • Что за ошибка ? «setup.exe is not a valid win32 application»

    Скорее всего файл не скачан целиком или он «битый»… попробуй перескачать, если не поможет, то фиг знаеть…

  • у меня в мазиле вышла ошибка : приложение Java Script — mistake/ он блокирует все и не дает ни чего делать.

    Я себе скачал Safari. Вот попробовал и мне понравилось. Тебе тоже советую установить

  • Не могу зайти на сервер майнкрафт, вылезает ошибка error class java.lang.illegalargumentexception. Что это?

    это ошибка Java — скорее всего проблема с каким-то адд-он в твоем браузере, т.к. маловероятно что майкрософт что-то на яве пишет, хотя кто знает.
    короче — перезагрузись, попробуй в другом браузере,
    попроси друга зайти с его компа — тогда поймете у кого косяк

  • Почему когда я записываю диск мне выдаёт ошибку?

    вариант то что сказал давайБезЗверюшек

    и от себя скажу то что лучше через Неро пиши, скачай Nero Micro (в нем неиу никакой лишней фигни) и наслаждайся

  • Что делать если выдает такую ошибку в банке?

    Позвонить по информационному телефону банка.

  • Может ли мемтест выдавать ошибку из-за того, что ОС не видит всей оперативки?

    нет не может. А вообще, мемтест делают без загруженной OC. Потому что та не даст обращаться к областям с важными системными данными.
    Т.к. тестирующая программа тоже программа, то и права у неё как у всех программ. ОС её зарубит, если будет лезть куда не надо. Может из-за этого ошибку и выкидывает.

    Мемтест был оставлен на часик при всех остальных вырубленых программах, отовсюду вышел, кроме самой винды.

    Это всё равно. Надо загружаться с диска или флешки и тестировать

  • Кто знает, что за «HTTP Error 400» выдает uTorrent?

    http://www.checkupdown.com/status/E400.html
    Тут довольно подробно изложено. Скорее всего проблема в твоём uTorrent клиенте.

<%@page import=»java.sql.*»%>

<%@page import=»java.util.*»%>

<%@page import=»java.lang.*»%>

<%@page import=»java.util.Properties»%>

<%@page import=»javax.mail.Message»%>

<%@page import=»javax.mail.MessagingException»%>

<%@page import=»javax.mail.PasswordAuthentication»%>

<%@page import=»javax.mail.Session»%>

<%@page import=»javax.mail.Transport»%>

<%@page import=»javax.mail.internet.InternetAddress»%>

<%@page import=»javax.mail.internet.MimeMessage»%>

<%@page import=»javax.mail.AuthenticationFailedException»%>

<%@page import=»javax.mail.internet.AdrressException.*»%>

<%@page import=»javax.mail.Authenticator»%>

<%

Class.forName(«sun.jdbc.odbc.JdbcOdbcDriver»);

Connection con=DriverManager.getConnection(«jdbc:odbc:mini»,»»,»»);

String email=»»;

String recruiter=request.getParameter(«recruiter»);

String post=request.getParameter(«post»);

String qual=request.getParameter(«qual»);

String ld=request.getParameter(«ld»);

String ed=request.getParameter(«ed»);

String age=request.getParameter(«age»);

String sa=request.getParameter(«sa»);

Statement st1,st=con.createStatement();

ResultSet rs=st.executeQuery(«select count(*) as c from job»);

rs.next();

int serailnumber=rs.getInt(1)+1;

System.out.print(serailnumber);

String s=»»;

int a=0;

String b;

String c;

st=con.createStatement();

st1=con.createStatement();

ResultSet rs1=st.executeQuery(«select serialnumber,Recruiter,Postname from job «);

while(rs1.next())

{

a=rs1.getInt(1)+1;

b=rs1.getString(2);

c=rs1.getString(3);

s=»update job set serialnumber=»+a+» where Recruiter='»+b+»‘ AND Postname='»+c+»‘»;

st1.executeUpdate(s);

}

PreparedStatement pst=con.prepareStatement(«insert into job values(?,?,?,?,?,?,?,?)»);

pst.setInt(1,1);

pst.setString(2,recruiter);

pst.setString(3,post);

pst.setString(4,qual);

pst.setString(5,ld);

pst.setString(6,ed);

pst.setString(7,age);

pst.setString(8,sa);

pst.executeUpdate();

final String pwd=»)(A%!A)%A@,502,503,587″;

System.out.print(«hello»);

rs=st.executeQuery(«select email from Table1»);

Properties props = new Properties();

props.put(«mail.smtp.host», «smtp.gmail.com»);

props.put(«mail.smtp.socketFactory.port», «465»);

props.put(«mail.smtp.socketFactory.class»,»javax.net.ssl.SSLSocketFactory»);

props.put(«mail.smtp.auth», «true»);

props.put(«mail.smtp.port», «465»);

try{

Session sess = Session.getInstance(props,new javax.mail.Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(«recent.notifications@gmail.com»,pwd);}});

while(rs.next())

{

email=rs.getString(1);

Message message = new MimeMessage(sess);

message.setFrom(new InternetAddress(«recent.notifications@gmail.com»));

message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(email));

message.setSubject(«New Notification for JOB»);

message.setText(«My Dear frnds,New Job Notification for you..n Recruiter:»+recruiter+»nPost: «+post+»n Qualification: «+qual+»n Last date For application: «+ld+»For details you can visit «+sa+» website n All the best frnds………»);

Transport.send(message);

System.out.println(«Done»);

}

con.close();

}

catch (MessagingException e) {throw new RuntimeException(e);}

%>

Notifications sent Successfully…<br>

<a href=»home.html»>Click Here</a> to redirect to Home Page….

when i execute this , i got errors like

e Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: javax.servlet.ServletException: java.sql.SQLException: General error

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:534)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:442)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

javax.servlet.ServletException: java.sql.SQLException: General error

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911)

org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)

org.apache.jsp.SendMailSSL_jsp._jspService(SendMailSSL_jsp.java:188)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

java.sql.SQLException: General error

sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6985)

sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)

sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3109)

sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:337)

sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:287)

org.apache.jsp.SendMailSSL_jsp._jspService(SendMailSSL_jsp.java:126)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.16 logs.

Apache Tomcat/7.0.16

Понравилась статья? Поделить с друзьями:
  • General climate коды ошибок фанкойлов
  • General climate коды ошибок наружного блока кондиционера
  • General climate коды ошибок на внутреннем блоке кондиционера
  • General climate vrf коды ошибок
  • General climate pulsar коды ошибок