에러처리
포스 플러그인에서 발생하는 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) => void | O | 워커나 iframe에서 onError가 발생하면 에러 객체를 받아 실행돼요 |
Response
반환값이 없어요.