DatabaseException.java
package com.albertsilva.dev.asjcatalog.service.exception;
/**
* Exceção lançada quando ocorre um erro relacionado ao banco de dados.
*
* <p>
* Esta exceção é utilizada para encapsular problemas que acontecem
* durante operações de persistência, como:
* </p>
*
* <ul>
* <li>Violação de integridade (ex: chave estrangeira)</li>
* <li>Falha ao deletar registros vinculados</li>
* <li>Erros de constraint no banco</li>
* </ul>
*
* <p>
* <b>Uso típico:</b>
* </p>
* <ul>
* <li>Camada de serviço (Service)</li>
* <li>Ao capturar exceções do JPA/Hibernate</li>
* </ul>
*
* <p>
* <b>Exemplo de cenário:</b>
* </p>
*
* <pre>
* Tentativa de deletar uma categoria que está vinculada a produtos
* </pre>
*
* <p>
* <b>Comportamento esperado:</b>
* </p>
* <ul>
* <li>Geralmente mapeada para HTTP 400 ou 409</li>
* </ul>
*/
public class DatabaseException extends RuntimeException {
private static final long serialVersionUID = 1L;
/**
* Cria uma nova exceção de erro de banco de dados.
*
* @param msg mensagem descritiva do erro
*/
public DatabaseException(String msg) {
super(msg);
}
}