forma correcta de manejar errores dentro de una Promesa

Actualmente, estoy tratando de decidir qué patrón debo usar al tratar con errores dentro de una Promesa. Por ejemplo, tengo el siguiente código

promiseFunc()
.then(result => {

    console.info(`.THEN:: ${result}`)
})
.catch(error => {

    console.info(`.CATCH:: ${error}`)
})

function promiseFunc() {

    return new Promise((resolve, reject) => {

        setTimeout(() => {

            throw Error("setTimeout's callback error")
            resolve('resolution')           
        }, 1000)
    })
}

Lo que no puedo entender es qué enfoque debería usarse para rechazar la Promesa si una función dentro de ella (setTimeout (), en mi caso) arroja un Error. En otras palabras, necesito un rechazo en lugar de un error, pero la única idea que se me ocurre es agregar un bloque try / catch y rechazar la Promesa de la captura.

Respuestas a la pregunta(3)

Su respuesta a la pregunta