---
# System prepended metadata

title: 【Java】【Spring Boot】 コントローラでパスの取得とエラーハンドリング
tags: ["\_Spring Boot", Java]

---

# 【Java】【Spring Boot】 コントローラでパスの取得とエラーハンドリング

## 環境
- Spring Boot 3.2.5

## パスの取得


**GET** `/users/<id>`にアクセスする。


```java
    // UserController.java
    // UUID型でuserIdを取得して、それをString型としてレスポンスする
    
    @RestController
    @RequestMapping("/users")
    public class UserController {
        @GetMapping("/{userId}")
        public new ResponseEntity<String> getUser(@PathVariable UUID userId) {
            return userId.toString;
        }
    }
    
```
## 型不一致によるエラーハンドリング

`@PathVariable UUID userId`　で`UUID`として`userId`に代入している。
もし、型とマッチしていなかったら以下のように例外処理をすることができる。

```java
    @RestControllerAdvice
    public class GlobalExceptionHandler {
        public ResponseEntity<String> handleTypeMismatch(
            MethodArgumentTypeMismatchException ex,
            HttpServletRequest request) {

        switch (parameterType) {
            case "UUID":
                // 例外処理...
                break;
            // その他の型の場合...
        }

        return new ResponseEntity<>("Invalid UUID");
    }
    
```
    