Handling exceptions and errors
Error handling incomplete in MongoDB
Error handling for the MongoDB connector is incomplete.
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
1model User {2 id Int @id @default(autoincrement())3 email String @unique4 name String?5}
Use the Prisma
namespace to access the error type. The error code can then be checked and a message can be printed.
import { PrismaClient, Prisma } from '@prisma/client'const client = new PrismaClient()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 mannerif (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.