0
0
mirror of https://github.com/ezyang/htmlpurifier.git synced 2024-12-31 12:01:51 +00:00

Exception throwing

Signed-off-by: Edward Z. Yang <ezyang@meta.com>
This commit is contained in:
Edward Z. Yang 2024-11-09 21:03:54 -05:00
parent 7f7ea68432
commit caa5a8e830
6 changed files with 12 additions and 11 deletions

View File

@ -77,7 +77,7 @@ class HTMLPurifier_AttrTypes
} }
if (!isset($this->info[$type])) { if (!isset($this->info[$type])) {
trigger_error('Cannot retrieve undefined attribute type ' . $type, E_USER_ERROR); throw new Exception('Cannot retrieve undefined attribute type ' . $type);
return; return;
} }
return $this->info[$type]->make($string); return $this->info[$type]->make($string);

View File

@ -898,7 +898,11 @@ class HTMLPurifier_Config
break; break;
} }
} }
trigger_error($msg . $extra, $no); if ($no == E_USER_ERROR) {
throw new Exception($msg . $extra);
} else {
trigger_error($msg . $extra, $no);
}
} }
/** /**

View File

@ -86,7 +86,7 @@ class HTMLPurifier_DoctypeRegistry
$doctype = $this->aliases[$doctype]; $doctype = $this->aliases[$doctype];
} }
if (!isset($this->doctypes[$doctype])) { if (!isset($this->doctypes[$doctype])) {
trigger_error('Doctype ' . htmlspecialchars($doctype) . ' does not exist', E_USER_ERROR); throw new Exception('Doctype ' . htmlspecialchars($doctype) . ' does not exist');
$anon = new HTMLPurifier_Doctype($doctype); $anon = new HTMLPurifier_Doctype($doctype);
return $anon; return $anon;
} }

View File

@ -390,7 +390,7 @@ class HTMLPurifier_Encoder
$str = self::unsafeIconv($encoding, 'utf-8//IGNORE', $str); $str = self::unsafeIconv($encoding, 'utf-8//IGNORE', $str);
if ($str === false) { if ($str === false) {
// $encoding is not a valid encoding // $encoding is not a valid encoding
trigger_error('Invalid encoding ' . $encoding, E_USER_ERROR); throw new Exception('Invalid encoding ' . $encoding);
return ''; return '';
} }
// If the string is bjorked by Shift_JIS or a similar encoding // If the string is bjorked by Shift_JIS or a similar encoding

View File

@ -264,9 +264,8 @@ class HTMLPurifier_HTMLDefinition extends HTMLPurifier_Definition
if (isset($this->info_content_sets['Block'][$block_wrapper])) { if (isset($this->info_content_sets['Block'][$block_wrapper])) {
$this->info_block_wrapper = $block_wrapper; $this->info_block_wrapper = $block_wrapper;
} else { } else {
trigger_error( throw new Exception(
'Cannot use non-block element as block wrapper', 'Cannot use non-block element as block wrapper',
E_USER_ERROR
); );
} }

View File

@ -112,9 +112,8 @@ class HTMLPurifier_HTMLModule_Tidy extends HTMLPurifier_HTMLModule
return; return;
} }
if (!isset($this->fixesForLevel[$this->defaultLevel])) { if (!isset($this->fixesForLevel[$this->defaultLevel])) {
trigger_error( throw new Exception(
'Default level ' . $this->defaultLevel . ' does not exist', 'Default level ' . $this->defaultLevel . ' does not exist'
E_USER_ERROR
); );
return; return;
} }
@ -162,8 +161,7 @@ class HTMLPurifier_HTMLModule_Tidy extends HTMLPurifier_HTMLModule
$e->$type = $fix; $e->$type = $fix;
break; break;
default: default:
trigger_error("Fix type $type not supported", E_USER_ERROR); throw new Exception("Fix type $type not supported");
break;
} }
} }
} }