/*
 * Copyright (c) 1996, 2005, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package java.io;

Signals that one of the ObjectStreamExceptions was thrown during a write operation. Thrown during a read operation when one of the ObjectStreamExceptions was thrown during a write operation. The exception that terminated the write can be found in the detail field. The stream is reset to it's initial state and all references to objects already deserialized are discarded.

As of release 1.4, this exception has been retrofitted to conform to the general purpose exception-chaining mechanism. The "exception causing the abort" that is provided at construction time and accessed via the public detail field is now known as the cause, and may be accessed via the Throwable.getCause() method, as well as the aforementioned "legacy field."

Author: unascribed
Since: 1.1
/** * Signals that one of the ObjectStreamExceptions was thrown during a * write operation. Thrown during a read operation when one of the * ObjectStreamExceptions was thrown during a write operation. The * exception that terminated the write can be found in the detail * field. The stream is reset to it's initial state and all references * to objects already deserialized are discarded. * * <p>As of release 1.4, this exception has been retrofitted to conform to * the general purpose exception-chaining mechanism. The "exception causing * the abort" that is provided at construction time and * accessed via the public {@link #detail} field is now known as the * <i>cause</i>, and may be accessed via the {@link Throwable#getCause()} * method, as well as the aforementioned "legacy field." * * @author unascribed * @since 1.1 */
public class WriteAbortedException extends ObjectStreamException { private static final long serialVersionUID = -3326426625597282442L;
Exception that was caught while writing the ObjectStream.

This field predates the general-purpose exception chaining facility. The Throwable.getCause() method is now the preferred means of obtaining this information.

@serial
/** * Exception that was caught while writing the ObjectStream. * * <p>This field predates the general-purpose exception chaining facility. * The {@link Throwable#getCause()} method is now the preferred means of * obtaining this information. * * @serial */
public Exception detail;
Constructs a WriteAbortedException with a string describing the exception and the exception causing the abort.
Params:
  • s – String describing the exception.
  • ex – Exception causing the abort.
/** * Constructs a WriteAbortedException with a string describing * the exception and the exception causing the abort. * @param s String describing the exception. * @param ex Exception causing the abort. */
public WriteAbortedException(String s, Exception ex) { super(s); initCause(null); // Disallow subsequent initCause detail = ex; }
Produce the message and include the message from the nested exception, if there is one.
/** * Produce the message and include the message from the nested * exception, if there is one. */
public String getMessage() { if (detail == null) return super.getMessage(); else return super.getMessage() + "; " + detail.toString(); }
Returns the exception that terminated the operation (the cause).
Returns: the exception that terminated the operation (the cause), which may be null.
Since: 1.4
/** * Returns the exception that terminated the operation (the <i>cause</i>). * * @return the exception that terminated the operation (the <i>cause</i>), * which may be null. * @since 1.4 */
public Throwable getCause() { return detail; } }