gpt4 book ai didi

ruby - 我的 URI.parse 没有在无效字符串上返回 URI::InvalidURIError

转载 作者:太空宇宙 更新时间:2023-11-03 17:47:20 25 4
gpt4 key购买 nike

我正在尝试验证一个 URL,但我的 URI.parse 正在接受任何字符串而不会引发 URI::InvalidURIError 错误。我做错了什么吗?

require 'uri'
URI.parse('invalid')
=> #<URI::Generic invalid>

解决方案我通过检查返回对象的类来解决这个问题。如果是 URI::Generic,我会提出自己的错误。

最佳答案

URI::InvalidURIError 在无法将参数解析为对象或多字节字符时引发。

irb(main):001:0> url = URI.parse(Object.new)
URI::InvalidURIError: bad URI(is not URI?): #<Object:0x007fcb7c2097a8>

irb(main):002:0> url = URI.parse('🍣')
URI::InvalidURIError: URI must be ascii only "\u{1f363}"

在这种情况下,invalid被认为是path

irb(main):003:0> URI.parse('invalid').path
=> "invalid"

关于ruby - 我的 URI.parse 没有在无效字符串上返回 URI::InvalidURIError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33385492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com