Function ext_php_rs::exception::throw_with_code
source · pub fn throw_with_code(ex: &ClassEntry, code: i32, message: &str) -> Result<()>
Expand description
Throws an exception with a given message and status code. See ClassEntry
for some built-in exception types.
Returns a result containing nothing if the exception was successfully thrown.
Parameters
ex
- The exception type to throw.code
- The status code to use when throwing the exception.message
- The message to display when throwing the exception.
Examples
use ext_php_rs::{zend::{ce, ClassEntry}, exception::throw_with_code};
throw_with_code(ce::compile_error(), 123, "This is a CompileError.");
Examples found in repository?
src/exception.rs (line 65)
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
pub fn throw(self) -> Result<()> {
throw_with_code(self.ex, self.code, &self.message)
}
}
impl From<String> for PhpException {
fn from(str: String) -> Self {
Self::default(str)
}
}
impl From<&str> for PhpException {
fn from(str: &str) -> Self {
Self::default(str.into())
}
}
#[cfg(feature = "anyhow")]
impl From<anyhow::Error> for PhpException {
fn from(err: anyhow::Error) -> Self {
Self::new(format!("{:#}", err), 0, crate::zend::ce::exception())
}
}
/// Throws an exception with a given message. See [`ClassEntry`] for some
/// built-in exception types.
///
/// Returns a result containing nothing if the exception was successfully
/// thrown.
///
/// # Parameters
///
/// * `ex` - The exception type to throw.
/// * `message` - The message to display when throwing the exception.
///
/// # Examples
///
/// ```no_run
/// use ext_php_rs::{zend::{ce, ClassEntry}, exception::throw};
///
/// throw(ce::compile_error(), "This is a CompileError.");
/// ```
pub fn throw(ex: &ClassEntry, message: &str) -> Result<()> {
throw_with_code(ex, 0, message)
}