Skip to content

에러처리

포스 플러그인에서 발생하는 rate limit을 제외한 모든 에러는 PosPluginSdkError 에러로 발생돼요.

ts
...
} catch(e) {
    if(PosPluginSdkError.isPosPluginSdkError(e)) {
        console.log('포스 플러그인에서 발생한 에러')
    }
...
}

RateLimitError

rate limit 초과 오류는 PosPluginSdkRateLimitError 에러로 발생돼요.

ts
import { PosPluginSdkRateLimitError } from '@tossplace/pos-plugin-sdk';
import { posPluginSdk } from '@tossplace/pos-plugin-sdk';
...
} catch(e) {
    if(PosPluginSdkRateLimitError.isPosPluginSdkRateLimitError(e)) {
        console.log('rate limit 초과로 인한 에러')
    }
...

PosPluginSdkRateLimitError에러는 PosPluginSdkError를 상속해요. 따라서 아래와 같은 경우 모든 테스트는 통과해요.

ts
  it('Error is not PosPluginSdkRateLimitError', () => {
    const error = new PosPluginSdkRateLimitError('test');
    expect(PosPluginSdkRateLimitError.isPosPluginSdkRateLimitError(error)).toBe(true);
  });
  it('PosPluginSdkRateLimitError is PosPluginSdkError', () => {
    const error = new PosPluginSdkRateLimitError('test');
    expect(PosPluginSdkError.isPosPluginSdkError(error)).toBe(true);
  });

Methods

addErrorListener

플러그인이 실행되는 워커(worker)나 iframe의 onError 이벤트를 받을 핸들러를 등록해요.

전달되는 범위

워커와 iframe의 onError 이벤트만 전달돼요. SDK 메서드 호출에서 발생한 에러는 이 핸들러로 오지 않으니, 호출부에서 try/catch로 직접 처리하세요.

ts
import { posPluginSdk } from '@tossplace/pos-plugin-sdk';

posPluginSdk.error.addErrorListener((error: Error) => {
    console.error('워커/iframe 에러:', error.message);
});

Parameters

파라미터타입필수설명
handler(error: Error) => voidO워커나 iframe에서 onError가 발생하면 에러 객체를 받아 실행돼요

Response

반환값이 없어요.