Önceki yazılarda CRUD işlemlerini gerçekleştirdik. Fakat Exception Handling konusuna değinmemiştik. Bu yazıda Custom Exception nasıl oluştururuz ona değineceğiz.
Senaryomuz, silinmek istenen Blogger’ın bulunamaması olacak.
BloggerNotFoundException
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
public class BloggerNotFoundException extends RuntimeException implements GraphQLError { private String errorMessage; public BloggerNotFoundExcepiton(String errorMessage) { super(errorMessage); this.errorMessage = errorMessage; } @Override public String getMessage() { return errorMessage; } @Override public List<SourceLocation> getLocations() { return null; } @Override public ErrorClassification getErrorType() { return ErrorType.DataFetchingException; } } |
ErrorType olarak aşağıdakilerden biri olabilir.
- InvalidSyntax
- ValidationError
- DataFetchingException
- OperationNotSupported
- ExecutionAborted
Şimdi ise bu hatayı alma durumunu ekleyelim. BloggerMutation içerisinde silme işlemi yapılan kısma ekleme yapacağım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
@Service public class BloggerMutation implements GraphQLMutationResolver { @Autowired private BloggerService service; public Boolean deleteBlogger(Long id) { if (service.getBloggerList().size() < id) { throw new BloggerNotFoundException("Blogger Not Found"); } service.getBloggerList().remove(id.intValue()); return true; } } |
Olmayan bir blogger’ı silmek istediğimizde verdiğimiz mesajı aşağıdaki resimde görebiliyoruz.
GitHub üzerinden ulaşabilirsiniz.
https://github.com/cemdrman/SpringBootWithGraphQL/tree/chapter3
Faydalı olması dileğiyle.