跳至主要内容

处理异常和错误

为了处理不同类型的错误,您可以使用 `instanceof` 检查错误类型并相应地处理它。

以下示例尝试创建具有已存在电子邮件记录的用户。这将抛出错误,因为 `email` 字段应用了 `@unique` 属性。

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

使用 `Prisma` 命名空间访问错误类型。然后可以检查 错误代码 并打印消息。

import { PrismaClient, Prisma } from '@prisma/client'

const client = new PrismaClient()

try {
await client.user.create({ data: { email: '[email protected]' } })
} 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
}

请参阅 错误参考,详细了解不同错误类型及其代码。