Я хочу продлить RuntimeException, чтобы создать это конкретное исключение:Собственного сообщения исключения
class CompileLinkException extends RuntimeException {
CompileLinkException(int shader) {
int infoLogLength = glGetShader(shader, GL_INFO_LOG_LENGTH);
String strInfoLog = glGetShaderInfoLog(shader, infoLogLength);
// set exception message = strInfoLog
glDeleteShader(shader);
}
}
Как установить сообщение пользовательского исключения? Единственный способ, который я знаю, - позвонить
super(message)
но эта инструкция должна быть первым утверждением в конструкторе.
Пожалуйста, не помещайте код обработчика в свой класс исключений. Поместите код обработчика во внешний блок '' 'catch''', где вы поймаете это исключение. – opyate
Я думаю, что вы, люди, не обращаетесь к реальной проблеме здесь. Исключение составляют только «сосуды» и не должны содержать логическую схему поиска или любую логику. Эти ответы обескуражены. Было бы абсурдно смешно видеть, что из-за этого возникает исключение, вызванное внутри конструктора другого исключения. – Alexander
@opyate, вы правы, я удалю glDeleteShader. –