


# ModuleStateException class






    *[<Null safety>](https://dart.dev/null-safety)*



<p>An <code>Exception</code> indicating that the Module is in an
invalid state. This exception should only be thrown when
the module is in a state which is cannot recover from and
will need to crash.</p>




## Constructors

[ModuleStateException](../package-fuchsia_modular_module/ModuleStateException/ModuleStateException.md) (String message)

The default constructor for this module.   


## Properties

##### [hashCode](../package-fuchsia_modular_module/ModuleStateException/hashCode.md) &#8594; int



The hash code for this object.  
_read-only, inherited_



##### [message](../package-fuchsia_modular_module/ModuleStateException/message.md) &#8594; String



A string indicating the what led to the exception.  
_final_



##### [runtimeType](../package-fuchsia_modular_module/ModuleStateException/runtimeType.md) &#8594; Type



A representation of the runtime type of the object.  
_read-only, inherited_





## Methods

##### [noSuchMethod](../package-fuchsia_modular_module/ModuleStateException/noSuchMethod.md)(Invocation invocation) dynamic



Invoked when a non-existent method or property is accessed.  
_inherited_



##### [toString](../package-fuchsia_modular_module/ModuleStateException/toString.md)() String



A string representation of this object.  
_override_





## Operators

##### [operator ==](../package-fuchsia_modular_module/ModuleStateException/operator_equals.md)(Object other) bool



The equality operator.  
_inherited_















