show() never throws on iOS or Android, so a missing try/catch can’t break an integration. There is no typed error class in Dart: a native failure arrives as an errorType string plus a human-readable errorMessage.
errorType values
errorType is the stable identifier from the native SDKs’ shared error vocabulary.
Where errors arrive
Presentation failures
A failure that stopped the sheet from appearing lands on theEncorePresentationResult as EncoreNotPresented with reason == EncoreNotPresentedReason.error:
Claim failures
A claim that errored after the sheet appeared surfaces on the advertiser funnel instead, asEncoreAdvertiserFailed with its own errorType and errorMessage. The user never saw it.
Purchase failures
Throwing from your purchase controller recordsEncorePublisherOutcome.failed, and the flow continues. Return EncorePurchaseResult.cancelled for a user cancellation and EncorePurchaseResult.pending for a deferred purchase rather than throwing either.
Platform exceptions
The methods other thanshow() are thin calls over a platform channel, and can raise a PlatformException for integration faults:
Calling the plugin on web or desktop throws
MissingPluginException, because the plugin implements iOS and Android only.
Related
- EncorePresentationResult: where presentation and claim failures land
- EncorePurchaseController: purchase-side failures
- Platform detail: iOS errors and Android errors