# responseErrorFn 관련 사용법

**URL:** https://ask.selectfromuser.com/t/responseerrorfn/298
**Category:** 사용 팁
**Tags:** responseerrorfn
**Created:** [10월 22, 2024, 3:48오전 UTC](https://ask.selectfromuser.com/t/responseerrorfn/298 "2024-10-22T03:48:19Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![hbkim](https://yyz2.discourse-cdn.com/flex032/user_avatar/ask.selectfromuser.com/hbkim/32/23_2.png) [@hbkim](https://ask.selectfromuser.com/u/hbkim)
#### Post date: [10월 22, 2024, 3:48오전 UTC](https://ask.selectfromuser.com/t/responseerrorfn/298/1 "2024-10-22T03:48:19Z")

</div>

API, 쿼리 실행후 에러 응답시 responseErrorFn을 통해 여러 처리가 가능합니다.

관련 기능과 정책은 아래와 같습니다.

**responseErrorFn**

- row에 하위 요소들로 에러원본 데이터 접근가능
- throw하면 toast 표시 (실패)
- return 문자열하면 공간에 표시
- return false 하면 아무것도 하지 않음 (에러표시안하거나 따로 직접표시)
- return 하면 기존처럼 표기 (stopPropagation)
- 조회는 공간에 “에러 JSON”
- 수정은 “다시 시도해주세요 alert”

```yaml
    responseErrorFn: |
      console.log(row)
      console.log(row.error)
      console.log(row.error.data)
      console.log(row.error.message)
      console.log(row.error.status)
      console.log(row.error.statusText)

      // throw new Error('샛별배송 23:00 이후로 재고 변경이 일시적으로 불가능합니다.')

      return '에러 메시지 입니다. 블록 공간에 표시'

      // toast('직접 띄우기')
      // alert('직접 띄우기')

```

**API YAML 예제**

```yaml
menus:
- path: pages/qP_aiV
  name: 새로운 메뉴
pages:
- path: pages/qP_aiV
  title: 제목
  subtitle: 내용
  blocks:
  - type: http
    name: 4xx POST
    axios:
      url: https://httpbin.selectfromuser.com/status/401
      method: POST
    # params:
    # - key: t
    # responseErrorFn: |
    # console.log(row)
    # console.log(row.error)
    # console.log(row.error.data)
    # console.log(row.error.message)
    # console.log(row.error.status)
    # console.log(row.error.statusText)

    # // throw new Error('샛별배송 23:00 이후로 재고 변경이 일시적으로 불가능합니다.')

    # return '에러 메시지 입니다. 블록 공간에 표시'

    # // toast('직접 띄우기')
    # // alert('직접 띄우기')

    # return false

  - type: http
    name: 4xx GET
    axios:
      url: https://httpbin.selectfromuser.com/status/401
      method: GET
    params:
      - key: t

    responseErrorFn: |
      console.log(row)
      console.log(row.error)
      console.log(row.error.data)
      console.log(row.error.message)
      console.log(row.error.status)
      console.log(row.error.statusText)

      // throw new Error('샛별배송 23:00 이후로 재고 변경이 일시적으로 불가능합니다.')

      // return '에러 메시지 입니다. 블록 공간에 표시'

      // toast('직접 띄우기')
      // alert('직접 띄우기')

      // return false

```

**쿼리 YAML 예제**

```yaml
  - type: query
    name: QUERY ERROR
    resource: mysql.qa
    sql: SELECT N()
    # sqlType: insert
    sqlType: select
    params:
      - key: t

    responseErrorFn: |
      // 디비마다 sqlMessage 부분이 다를수있음! 

      return `에러 메시지 입니다. 블록 공간에 표시 ${row.error.sqlMessage}`

```

관련하여 도움이 필요하시거나 기능 제안이 있다면 말씀해주세요.  
감사합니다.
