123456789_123456789_123456789_123456789_123456789_

Exception: Encoding::UndefinedConversionError

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: EncodingError
Defined in: transcode.c,
transcode.c

Overview

Raised by ::Encoding and ::String methods when a transcoding operation fails.

Class Attribute Summary

::Exception - Inherited

.to_tty?

Returns true if exception messages will be sent to a terminal device.

Class Method Summary

::Exception - Inherited

.exception

Returns an exception object of the same class as self; useful for creating a similar exception, but with a different message.

.new

Returns a new exception object.

Instance Method Summary

::Exception - Inherited

#==

Returns whether object is the same class as self and its #message and #backtrace are equal to those of self.

#backtrace

Returns a backtrace value for self; the returned value depends on the form of the stored backtrace value:

#backtrace_locations

Returns a backtrace value for self; the returned value depends on the form of the stored backtrace value:

#cause

Returns the previous value of global variable $!, which may be nil (see Global Variables):

#detailed_message

Returns the message string with enhancements:

#exception

Returns an exception object of the same class as self; useful for creating a similar exception, but with a different message.

#full_message

Returns an enhanced message string:

#inspect

Returns a string representation of self:

#message

Returns #to_s.

#set_backtrace

Sets the backtrace value for self; returns the given +value:

#to_s

Returns a string representation of self:

Constructor Details

This class inherits a constructor from Exception

Instance Method Details

#destination_encodingString

Returns the destination encoding as an encoding object.

[ GitHub ]

  
# File 'transcode.c', line 4344

static VALUE
ecerr_destination_encoding(VALUE self)
{
    return rb_attr_get(self, id_destination_encoding);
}

#destination_encoding_nameString

Returns the destination encoding name as a string.

[ GitHub ]

  
# File 'transcode.c', line 4332

static VALUE
ecerr_destination_encoding_name(VALUE self)
{
    return rb_attr_get(self, id_destination_encoding_name);
}

#error_charString

Returns the one-character string which cause UndefinedConversionError.

ec = Encoding::Converter.new("ISO-8859-1", "EUC-JP")
begin
  ec.convert("\xa0")
rescue Encoding::UndefinedConversionError
  puts $!.error_char.dump   #=> "\xC2\xA0"
  p $!.error_char.encoding  #=> #<Encoding:UTF-8>
end
[ GitHub ]

  
# File 'transcode.c', line 4365

static VALUE
ecerr_error_char(VALUE self)
{
    return rb_attr_get(self, id_error_char);
}

#source_encodingEncoding

Returns the source encoding as an encoding object.

Note that the result may not be equal to the source encoding of the encoding converter if the conversion has multiple steps.

ec = Encoding::Converter.new("ISO-8859-1", "EUC-JP") # ISO-8859-1 -> UTF-8 -> EUC-JP
begin
  ec.convert("\xa0") # NO-BREAK SPACE, which is available in UTF-8 but not in EUC-JP.
rescue Encoding::UndefinedConversionError
  p $!.source_encoding              #=> #<Encoding:UTF-8>
  p $!.destination_encoding         #=> #<Encoding:EUC-JP>
  p $!.source_encoding_name         #=> "UTF-8"
  p $!.destination_encoding_name    #=> "EUC-JP"
end
[ GitHub ]

  
# File 'transcode.c', line 4320

static VALUE
ecerr_source_encoding(VALUE self)
{
    return rb_attr_get(self, id_source_encoding);
}

#source_encoding_nameString

Returns the source encoding name as a string.

[ GitHub ]

  
# File 'transcode.c', line 4294

static VALUE
ecerr_source_encoding_name(VALUE self)
{
    return rb_attr_get(self, id_source_encoding_name);
}