# phpman > perldoc > SOAP::Fault

## NAME
    [SOAP::Fault](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3AFault/markdown) - encapsulates SOAP faults prior to their serialization or after their
    deserialization

## DESCRIPTION
    This class encapsulates SOAP faults prior to their serialization or after their deserialization.
    The methods available are a constructor and four accessors. Each accessor creates an object on
    demand, just as the other classes do, when called as a static method. Like other accessors in
    the [SOAP::Lite](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3ALite/markdown) package, they return the object itself when setting the attribute.

## GENERATING A SOAP FAULT
    To generate a SOAP Fault simply issue a Perl die command on the server side as you might
    normally. The SOAP processor will intercept the die command and return a SOAP Fault, using the
    string passed to the die command as the faultstring, to the client making the call. If you
    require having more control over the SOAP Fault returned to the client, then simply pass a
    [SOAP::Fault](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3AFault/markdown) object to the die command and the SOAP processor will behave accordingly. For
    example:

      die [SOAP::Fault](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3AFault/markdown)->faultcode('Server.Custom') # will be qualified
                     ->faultstring('Died in server method')
                     ->faultdetail(bless {code => 1} => 'BadError')
                     ->faultactor('<http://www.soaplite.com/custom>');

## METHODS
### new
            $fault = [SOAP::Fault](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3AFault/markdown)->new(faultcode => 'Server');

        Explicitly creates a new [SOAP::Fault](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3AFault/markdown) object. Any of the four attributes represented next by
        accessor methods may be passed in the argument list with values immediately following their
        attribute name.

### faultcode
            $fault->faultcode('MethodUnknown');

        Returns the current fault code or sets it if a value is given.

### faultstring
            $fault->faultstring("There is no $method here");

        Returns or sets the fault string.

### faultactor
            $fault->faultcode($header->actor);

        Returns or sets the fault-actor element. Note that the actor isn't always required in a SOAP
        fault.

### faultdetail
            $fault->faultcode(bless { proxy => $ip }, 'Err');

        Returns or sets the fault's detail element. Like the actor, this isn't always a required
        element. Note that fault detail content in a message is represented as tag blocks. Thus, the
        values passed to this accessor when setting the value are either [SOAP::Data](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3AData/markdown) objects, or more
        general blessed hash references.

    In addition to these methods, the [SOAP::Fault](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3AFault/markdown) package also provides detail as an alias for
    faultdetail. The former is the actual name of the element with SOAP faults, but the latter name
    is less ambiguous when regarded with the rest of the [SOAP::Lite](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3ALite/markdown) package. Objects of this class
    also have a special stringification enabled. If an object is printed or otherwise stringified,
    the value produced is faultcode: faultstring, with the attribute values of the object.

## SEE ALSO
    [SOAP::Data](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3AData/markdown), [SOAP::Header](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3AHeader/markdown), [SOAP::SOM](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3ASOM/markdown)

## ACKNOWLEDGEMENTS
    Special thanks to O'Reilly publishing which has graciously allowed [SOAP::Lite](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3ALite/markdown) to republish and
    redistribute large excerpts from *Programming Web Services with Perl*, mainly the [SOAP::Lite](https://www.chedong.com/phpMan.php/perldoc/SOAP%3A%3ALite/markdown)
    reference found in Appendix B.

## COPYRIGHT
    Copyright (C) 2000-2004 Paul Kulchenko. All rights reserved.

    This library is free software; you can redistribute it and/or modify it under the same terms as
    Perl itself.

## AUTHORS
    Paul Kulchenko (<paulclinger@yahoo.com>)

    Randy J. Ray (<rjray@blackperl.com>)

    Byrne Reese (<byrne@majordojo.com>)

