Skip to content

Conversation

nvborisenko
Copy link
Member

This approach brings us a possibility to track what exactly we try to convert.

Description

var a = (object)"true"; var b = (bool)a;

It always throws InvalidCastException.

There is safer method:

var a = (object)"true"; var b = (bool)Convert.ChageType(a, typeof(bool));

Even if input is not formatted well to be boolean, then we will get more clear exception:

System.FormatException: String 'false 66' was not recognized as a valid Boolean. 

where false 66 is incorrect input.

Motivation and Context

Just to get more clear understanding what is going wrong, and highlight a value returned from server side.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • I have read the contributing document.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
Copy link
Member

@diemol diemol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @nvborisenko!

@diemol diemol added this to the 4.9 milestone Apr 19, 2023
@diemol diemol merged commit 0ae495c into SeleniumHQ:trunk Apr 19, 2023
@nvborisenko nvborisenko deleted the safe-conversion branch April 19, 2023 10:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants