我想扩展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)
但该指令必须是构造函数中的第一个语句。
答案 0 :(得分:4)
我不确定Exception代码是否仅在内部使用getMessage()
方法来使用该消息,但您可以尝试覆盖此方法并查看它是否适合您:
class CompileLinkException extends RuntimeException {
String strInfoLog;
CompileLinkException(int shader) {
int infoLogLength = glGetShader(shader, GL_INFO_LOG_LENGTH);
strInfoLog = glGetShaderInfoLog(shader, infoLogLength);
}
@Override
public String getMessage() {
return strInfoLog;
}
}
答案 1 :(得分:1)
你可以这样做:
super(glGetShaderInfoLog(shader, glGetShader(shader, GL_INFO_LOG_LENGTH)));