Java异常处理详解:从基础到自定义异常

需积分: 10 1 下载量 126 浏览量 更新于2024-08-22 收藏 2.27MB PPT 举报
"异常处理是编程中用于处理程序运行时可能出现错误的一种机制。异常是指程序在执行过程中遇到的不正常情况,它可以是非致命性的,即经过适当处理后程序仍能继续执行,也可以是致命性的,导致程序无法简单恢复。异常处理的目的在于检测异常并提供恢复机制,使得程序可以从故障状态下恢复,保证程序的稳定性和健壮性。异常处理通常涉及到try、catch和finally等程序块的使用,以及对异常对象类型的理解和分类。 在Java中,异常分为两大类:RuntimeException的子类和其他非RuntimeException子类的异常。RuntimeException子类通常是由编程错误引起的,如除以零、空指针异常等,这类异常的出现表明程序存在逻辑错误,需要修复。其他异常则通常是由于外部因素,如文件不存在、网络连接问题等,这类异常通常需要被捕获并适当地处理。 异常处理的基本结构包括try、catch和finally三个部分。try程序块包含可能会抛出异常的代码,当try块中的代码抛出异常时,控制权会立即转移到相应的catch块。catch块用于捕获并处理特定类型的异常,可以有多个catch块来处理不同类型的异常。finally块是可选的,无论是否发生异常,finally块中的代码都会被执行,通常用于释放资源或执行清理操作。 在实际编程中,何时使用异常处理至关重要。通常在以下情况应考虑使用异常:方法因不可控原因无法完成其功能;处理那些不适合直接处理异常的组件的异常;在大型项目中保持一致的错误处理策略。忽略异常虽然简单,但并不适用于面向公众的产品,因为它可能导致错误未被发现。而简单地让程序终止运行虽然避免了错误的蔓延,但对于关键任务应用来说并不合适,因为这可能导致服务中断。 异常处理是提高软件质量的关键环节,通过合理的异常处理,开发者可以确保程序在遇到问题时能够优雅地处理,减少程序崩溃的风险,并为用户提供更好的体验。了解和熟练掌握异常处理机制,有助于编写出更加健壮和可靠的代码。"

import requests import os from bs4 import BeautifulSoup cookie = os.getenv('MY_COOKIE') # 保存到环境变量中 def get_with_cookie(url): headers = { 'cookie': cookie, 'pragma': 'no-cache', 'referer': 'https://uland.taobao.com/sem/tbsearch?refpid=mm_26632258_3504122_32538762&keyword=%E7%88%B1%E6%B7%98%E5%AE%9D%E4%B9%B0%E4%B8%9C%E8%A5%BF&clk1=066356e5e429004e6730976351cc1afc&upsId=066356e5e429004e6730976351cc1afc', 'sec-ch-ua': '"Microsoft Edge";v="113", "Chromium";v="113", "Not-A.Brand";v="24"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': "Windows", 'sec-fetch-dest': 'document', 'sec-fetch-mode': 'navigate', 'sec-fetch-site': 'same-origin', 'sec-fetch-user': '?1', 'upgrade-insecure-requests': '1', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.50' } resp = requests.get(url=url, headers=headers) return resp.text # 解析HTML内容,提取商品名称、价格和销量信息 def parse_html(html): soup = BeautifulSoup(html, 'html.parser') title = soup.select_one('h3.tb-main-title[data-title]') return title # 测试接口: url = 'https://item.taobao.com/item.htm?id=699089474285&ali_refid=a3_430673_1006:1102522391:N:%2BAkz14GC%2BXi%2Bma9dw7y9M4p5Yhq5iT8I:f9e826228fbc823934848d20e28dff81&ali_trackid=162_f9e826228fbc823934848d20e28dff81&spm=a2e0b.20350158.31919782.5' resp_text = get_with_cookie(url) title = parse_html(resp_text) # 打印商品信息 print(title.text.strip())使用try-except语句捕获异常

2023-05-25 上传
2023-06-07 上传