


# MethodException&lt;T> class









<p>If a FIDL method defines an application-level error, this exception will be
thrown with the error as its value.</p>




## Constructors

[MethodException](../package-fidl_fidl/MethodException/MethodException.md) (T value)

   


## Properties

##### [hashCode](../package-fidl_fidl/MethodException/hashCode.md) &#8594; int



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



##### [runtimeType](../package-fidl_fidl/MethodException/runtimeType.md) &#8594; Type



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



##### [value](../package-fidl_fidl/MethodException/value.md) &#8594; T



  
_<span class="feature">final</span>_





## Methods

##### [noSuchMethod](../package-fidl_fidl/MethodException/noSuchMethod.md)(Invocation invocation) dynamic



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



##### [toString](../package-fidl_fidl/MethodException/toString.md)() String



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





## Operators

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



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















