package-error-package
package-error-package Function
Syntax:
package-error-package condition → package
Arguments and Values:
condition—a condition of type package-error.
package—a package designator .
Description:
Returns a designator for the offending package in the situation represented by the condition.
Examples:
(package-error-package
(make-condition ’package-error
:package (find-package "COMMON-LISP")))
→ #<Package "COMMON-LISP">
See Also:
package-errorExpanded Reference: package-error-package
Basic Usage: Retrieving the Offending Package
package-error-package returns a designator for the package involved in a package-error condition.
(let ((c (make-condition 'package-error
:package (find-package "COMMON-LISP"))))
(package-error-package c))
==> #<PACKAGE "COMMON-LISP">
Using with handler-case
When handling a package-error, you can use package-error-package to identify which package caused the problem.
(handler-case
(in-package "THIS-PACKAGE-DOES-NOT-EXIST")
(package-error (c)
(format nil "Error involving package: ~A"
(package-error-package c))))
=> "Error involving package: THIS-PACKAGE-DOES-NOT-EXIST"
;; (exact output is implementation-dependent)
The Return Value May Be a Package Object or Name
The specification says package-error-package returns a package designator, which could be a package object or a string name.
(let ((c (make-condition 'package-error
:package "KEYWORD")))
(let ((result (package-error-package c)))
(or (packagep result) (stringp result))))
=> T