


# UnknownMethodException class












**Inheritance**

- Object
- [FidlError](../package-fidl_fidl/FidlError-class.md)
- UnknownMethodException








## Constructors

[UnknownMethodException](../package-fidl_fidl/UnknownMethodException/UnknownMethodException.md) ()

  _const_ 


## Properties

##### [code](../package-fidl_fidl/FidlError/code.md) &#8594; [FidlErrorCode](../package-fidl_fidl/FidlErrorCode.md)



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



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



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



##### [message](../package-fidl_fidl/FidlError/message.md) &#8594; String



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



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



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





## Methods

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



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



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



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





## Operators

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



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















