---
title: Publishers.Catch
framework: combine
role: symbol
role_heading: Structure
path: combine/publishers/catch
---

# Publishers.Catch

A publisher that handles errors from an upstream publisher by replacing the failed publisher with another publisher.

## Declaration

```swift
struct Catch<Upstream, NewPublisher> where Upstream : Publisher, NewPublisher : Publisher, Upstream.Output == NewPublisher.Output
```

## Topics

### Creating a catch publisher

- [init(upstream:handler:)](combine/publishers/catch/init(upstream:handler:).md)

### Declaring supporting types

- [Publishers.Catch.Output](combine/publishers/catch/output.md)
- [Publishers.Catch.Failure](combine/publishers/catch/failure.md)

### Inspecting publisher properties

- [upstream](combine/publishers/catch/upstream.md)
- [handler](combine/publishers/catch/handler.md)

## Relationships

### Conforms To

- [Publisher](combine/publisher.md)

## See Also

### Convenience publishers

- [Publishers.Sequence](combine/publishers/sequence.md)
