


# IncomingStateException class






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



<p>An Exception that can be thrown if the <a href="../package-fuchsia_services_services/Incoming-class.md">Incoming</a> object is in
a bad state.</p>




## Constructors

[IncomingStateException](../package-fuchsia_services_services/IncomingStateException/IncomingStateException.md) (String message)

Creates a new instance of this.   


## Properties

##### [hashCode](../package-fuchsia_services_services/IncomingStateException/hashCode.md) &#8594; int



The hash code for this object.  
_<span class="feature read-only">read-only</span><span class="feature inherited">inherited</span>_



##### [message](../package-fuchsia_services_services/IncomingStateException/message.md) &#8594; String



An error message describing the reason for this exception.  
_<span class="feature final">final</span>_



##### [runtimeType](../package-fuchsia_services_services/IncomingStateException/runtimeType.md) &#8594; Type



A representation of the runtime type of the object.  
_<span class="feature read-only">read-only</span><span class="feature inherited">inherited</span>_





## Methods

##### [noSuchMethod](../package-fuchsia_services_services/IncomingStateException/noSuchMethod.md)(Invocation invocation) dynamic



Invoked when a non-existent method or property is accessed.  
_<span class="feature inherited">inherited</span>_



##### [toString](../package-fuchsia_services_services/IncomingStateException/toString.md)() String



A string representation of this object.  
_<span class="feature override">override</span>_





## Operators

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



The equality operator.  
_<span class="feature inherited">inherited</span>_















