Skip to main content
Prisma Documentation Docs

Search documentation

Type to search this documentation.

On this pageOverview

Handling exceptions and errors (Prisma ORM v7) (/docs/orm/v7/prisma-client/debugging-and-troubleshooting/handling-exceptions-and-errors)

For the complete Prisma documentation index, see llms.txt. A markdown version of any docs page is available by appending .md to its URL.

This page covers how to handle exceptions and errors

Location: ORM > v7 > Prisma Client > Debugging and Troubleshooting > Handling exceptions and errors

In order to handle different types of errors you can use instanceof to check what the error is and handle it accordingly.

The following example tries to create a user with an already existing email record. This will throw an error because the email field has the @unique attribute applied to it.

schema.prisma
model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
}

Use the Prisma namespace to access the error type. The error code can then be checked and a message can be printed.

TypeScript
import { PrismaPg } from "@prisma/adapter-pg";
import { PrismaClient, Prisma } from "../generated/prisma/client";

const connectionString = `${process.env.DATABASE_URL}`;
const adapter = new PrismaPg({ connectionString });
const prisma = new PrismaClient({ adapter });

try {
  await client.user.create({ data: { email: "alreadyexisting@mail.com" } });
} catch (e) {
  if (e instanceof Prisma.PrismaClientKnownRequestError) {
    // The .code property can be accessed in a type-safe manner
    if (e.code === "P2002") {
      console.log(
        "There is a unique constraint violation, a new user cannot be created with this email",
      );
    }
  }
  throw e;
}

See Errors reference for a detailed breakdown of the different error types and their codes.

  • Debugging: This page explains how to enable debugging output for Prisma Client by setting the DEBUG environment variable
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu