我定義了一個自定義異常,像這樣:如何在自定義異常中打印堆棧跟蹤?
package source.exception;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ValidationException extends Exception
{
private static final Logger logger = LoggerFactory.getLogger("source.exception.ValidationException");
public ValidationException(String message)
{
super(message);
ValidationException e = new ValidationException();
logger.error("Exception : {}" , e);
}
}
在我使用這個例外,像這樣的主程序:
public void readFile(String path) throws ValidationException
{
logger.debug("Input file path = {}" , path);
try
{
if(validatePath(path))
{
mathExpressionReader = new BufferedReader(new FileReader(path));
}
else
{
throw new ValidationException("Your file dose not exist!");
}
}
catch(Exception ex)
{
logger.error("Exception {} has occurred" , ex);
}
}
現在我不知道如何打印堆棧跟蹤時validatePath失敗(意味着如果語句變爲false)。任何人都可以幫助我在自定義異常中打印堆棧跟蹤?
'ValidationException e = new ValidationException(); logger.error(「Exception:{}」,e);' - 這意味着什麼? – immibis
@ immibis yes.but當我在ValidationException類中定義這個陳述給我一個錯誤。在readFile()方法中,如果validate Path是false,我想停止運行,然後用logback在文件中打印棧tarce – marzie
爲什麼要登錄異常構造函數?也許你的意思是'logger.error(「Error」,this)'? –