Might Fail
https://www.npmjs.com/package/might-fail
try/catch
profile/page.tsx
async function Profile({ params }: ProfileProps) {
let user: User | undefined
try {
user = await db
.select()
.from(usersTable)
.where(eq(usersTable.username, params.username))
.then((result) => result[0])
} catch (e: any) {
console.error(error)
return (<div>error connecting to database</div>)
}
if (!user) {
notFound()
}
return (
<>
// ...
</>
)
}
profile/page.tsx
async function Profile({ params }: ProfileProps) {
let user: User | undefined
try {
user = await db
.select()
.from(usersTable)
.where(eq(usersTable.username, params.username))
.then((result) => result[0])
} catch (e: any) {
console.error(error)
return (<div>error connecting to database</div>)
}
if (!user) {
notFound()
}
return (
<>
// ...
</>
)
}
profile/page.tsx
async function Profile({ params }: ProfileProps) {
let user: User | undefined
try {
user = await db
.select()
.from(usersTable)
.where(eq(usersTable.username, params.username))
.then((result) => result[0])
} catch (e: any) {
console.error(error)
return (<div>error connecting to database</div>)
}
if (!user) {
notFound()
}
return (
<>
// ...
</>
)
}
profile/page.tsx
async function Profile({ params }: ProfileProps) {
let user: User | undefined
try {
user = await db
.select()
.from(usersTable)
.where(eq(usersTable.username, params.username))
.then((result) => result[0])
} catch (e: any) {
console.error(error)
return (<div>error connecting to database</div>)
}
if (!user) {
notFound()
}
return (
<>
// ...
</>
)
}
mightFail
profile/page.tsx
async function Profile({ params }: ProfileProps) {
const { result: user, error: userError } = await mightFail(
db
.select()
.from(usersTable)
.where(eq(usersTable.username, params.username))
.then((result) => result[0])
)
if (userError) {
console.error(userError)
return <div>error connecting to database</div>
}
if (!user) {
notFound()
}
return (
<>
// ...
</>
)
}
profile/page.tsx
async function Profile({ params }: ProfileProps) {
const { result: user, error: userError } = await mightFail(
db
.select()
.from(usersTable)
.where(eq(usersTable.username, params.username))
.then((result) => result[0])
)
if (userError) {
console.error(userError)
return <div>error connecting to database</div>
}
if (!user) {
notFound()
}
return (
<>
// ...
</>
)
}
profile/page.tsx
async function Profile({ params }: ProfileProps) {
const { result: user, error: userError } = await mightFail(
db
.select()
.from(usersTable)
.where(eq(usersTable.username, params.username))
.then((result) => result[0])
)
if (userError) {
console.error(userError)
return <div>error connecting to database</div>
}
if (!user) {
notFound()
}
return (
<>
// ...
</>
)
}
profile/page.tsx
async function Profile({ params }: ProfileProps) {
const { result: user, error: userError } = await mightFail(
db
.select()
.from(usersTable)
.where(eq(usersTable.username, params.username))
.then((result) => result[0])
)
if (userError) {
console.error(userError)
return <div>error connecting to database</div>
}
if (!user) {
notFound()
}
return (
<>
// ...
</>
)
}