class BusinessRuleError_v1
Custom exception class that signals a violation of business rules in the application, inheriting from ControllerError.
/tf/active/vicechatdev/CDocs/controllers/__init__.py
76 - 78
simple
Purpose
BusinessRuleError is a specialized exception class used to indicate when business logic constraints or rules have been violated during application execution. It extends ControllerError to provide a specific exception type for business rule violations, allowing for more granular error handling and clearer separation between different types of application errors. This exception should be raised when operations fail due to business logic constraints rather than technical errors (e.g., attempting to approve a document that doesn't meet approval criteria, violating workflow rules, or breaking domain-specific constraints).
Source Code
class BusinessRuleError(ControllerError):
"""Exception raised when a business rule is violated."""
pass
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
bases |
ControllerError | - |
Parameter Details
args: Variable positional arguments passed to the parent Exception class, typically containing the error message as the first argument. Can include additional context information.
kwargs: Variable keyword arguments passed to the parent Exception class for additional exception configuration if supported by the parent class.
Return Value
Instantiation returns a BusinessRuleError exception instance that can be raised to signal business rule violations. The exception object contains the message and any additional context passed during instantiation, accessible via standard exception attributes like 'args'.
Class Interface
Methods
__init__(*args, **kwargs)
Purpose: Initializes a new BusinessRuleError exception instance, inheriting initialization behavior from ControllerError and Exception
Parameters:
args: Variable positional arguments, typically the error message as the first argumentkwargs: Variable keyword arguments for additional exception configuration
Returns: None (constructor)
__str__() -> str
Purpose: Returns the string representation of the exception (inherited from Exception)
Returns: String representation of the exception, typically the error message
__repr__() -> str
Purpose: Returns the official string representation of the exception (inherited from Exception)
Returns: String representation suitable for debugging, showing the exception class and message
Attributes
| Name | Type | Description | Scope |
|---|---|---|---|
args |
tuple | Tuple containing the arguments passed to the exception constructor, typically including the error message | instance |
__cause__ |
Optional[BaseException] | The exception that directly caused this exception (inherited from BaseException) | instance |
__context__ |
Optional[BaseException] | The exception context for implicit exception chaining (inherited from BaseException) | instance |
__traceback__ |
Optional[TracebackType] | The traceback object associated with this exception (inherited from BaseException) | instance |
Dependencies
CDocs.configCDocs.models.user_extensions
Required Imports
from CDocs.exceptions import BusinessRuleError
from CDocs.exceptions import ControllerError
Usage Example
# Raising the exception
from CDocs.exceptions import BusinessRuleError
def approve_document(document_id, user):
if not user.has_approval_permission():
raise BusinessRuleError("User does not have permission to approve documents")
if document.status != 'pending_approval':
raise BusinessRuleError(f"Document must be in 'pending_approval' status, current status: {document.status}")
# Proceed with approval logic
# Catching the exception
try:
approve_document(doc_id, current_user)
except BusinessRuleError as e:
print(f"Business rule violation: {e}")
# Handle business rule error appropriately
except ControllerError as e:
print(f"Controller error: {e}")
# Handle other controller errors
Best Practices
- Use BusinessRuleError specifically for business logic violations, not for technical errors like database connection failures or file I/O errors
- Provide clear, user-friendly error messages that explain which business rule was violated and why
- Catch BusinessRuleError at appropriate application layers (e.g., controller or service layer) to provide meaningful feedback to users
- Consider including additional context in the exception message such as the specific rule violated, current state, and expected state
- Use this exception type consistently across the application to maintain a clear error handling hierarchy
- Document which business rules can trigger this exception in your API or service documentation
- Avoid catching this exception too broadly; let it propagate to layers that can handle it appropriately
- When raising this exception, ensure the message is actionable and helps users understand how to correct the violation
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
class BusinessRuleError 85.9% similar
-
class ControllerError 57.5% similar
-
class ValidationError_v1 56.2% similar
-
class EmailError 53.5% similar
-
class PermissionError_v1 51.7% similar