


# ProxyError class









<p>The object that <a href="../package-fidl_fidl/ProxyController/error.md">ProxyController&lt;T&gt;.error</a> completes with when there is
an error.</p>




## Constructors

[ProxyError](../package-fidl_fidl/ProxyError/ProxyError.md) (String message)

Creates a proxy error with the given message.   


## Properties

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



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



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



What went wrong.  
_final_



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



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





## Methods

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



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



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



A string representation of this object.  
_override_





## Operators

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



The equality operator.  
_inherited_















